tkhrsskの日記

技術ネタなど

Linuxメモリ管理 pssとrssの違いなど

VSZまたはVSS プロセスの仮想メモリ

RSS Resident set size 物理メモリの消費量

USS Unique set size 実際にプロセスが占有しているメモリ

  • USSに共有メモリをプロセス間で均等に分配したものがPSSになる。

PSS Proportional set size プロセスが実質的に所有しているメモリ

  • PSSは、共有メモリを使う人が増えれば、一人当たりのサイズが減るわけですね。

たいていは、VSZ > RSS > PSS > USS となるはず。

mallocとかforkした場合、VSZは増えるが、実際に書き込んで使われるまではRSSは増えない。 共有ラメモリ分を分配したら、PSS。共有メモリをのぞいたら、RSS

Cookie Clicker メモ

Legacyでupgrade slotに入れるもの

septillion, octillion, nonillion, decillion...

  • f:id:tkhrssk:20200619234120p:plain Octillion fingers 1 quitillion
  • f:id:tkhrssk:20171112164252p:plain 900 non
  • f:id:tkhrssk:20171223001029p:plain Kitten assistants to the regional manager 900deci
  • f:id:tkhrssk:20200619234220p:plain Space-filling fibers 155 deci
  • f:id:tkhrssk:20200619234257p:plain cookies++ 35.5 deci

まだ

卒業

  • f:id:tkhrssk:20170814002546p:plain Leprechaun village 13 septillion (150)
  • f:id:tkhrssk:20170814001816p:plain Kitten specialists 900 septillion
  • f:id:tkhrssk:20170814002910p:plain Lux sanctorum 1.05 octillion (200)
  • f:id:tkhrssk:20170814002109p:plain Improbability drive 13 octillion (200)
  • f:id:tkhrssk:20170814002438p:plain Reverse shadows 1.05 nonillion (250)
  • f:id:tkhrssk:20170814002214p:plain Antisuperstistronics 13 nonillion (250必要)
  • f:id:tkhrssk:20170826021751p:plain 85 non (300 anti)
  • f:id:tkhrssk:20170814001702p:plain Kitten experts 900 octillion
  • f:id:tkhrssk:20171223001114p:plain Crystal mirrors 1.05 deci (300 prism)
  • f:id:tkhrssk:20171223001131p:plain Bunnypedes 13deci (300 cgancemaker dice)

参考

Windows PC セットアップメモ

ASUSのデスクトップを調達。 一応、長男向け。

初回起動のWindows Update、めちゃくちゃ時間かかる。一回フリーズして、強制再起動。

初期セットアップ時に、新規MSアカウントつくったら パスワードがあってないとかでて焦ったけど、電話番号登録してたんでSMSで復旧した。

その後、普通にWindowsログインしてからUpdateしたほうがスムーズに更新できた気がする。

Setup Tool

Setting

とりあえず、McAfee30日分入っていたので使用。保護者機能も使ってみた。 それなりに使えるなら購入してもいいかなと思う。

Chomeがやたらとちらつくので、調べてみたらハードウェアアクセラレーションの無効化でなおった。

EXCEL VBA PFDの図形を書くマクロ

f:id:tkhrssk:20170604012713p:plain

上記を固定で出力するマクロです。

これだけだとテンプレ用意するのと何の変わりもないけど、 GraphVizとかみたいに、必要な情報を表で埋めたら全部自動でオブジェクト作れるようにしたいとは思っている。 配置自動調整まではさすがにするつもりないけど。

Sub MacroPFD()
    Dim ShapeProc As shape, ShapeDoc As shape, ShapeCon As shape
    Dim ShapeDocIn As shape, ShapeConIn As shape
    
    Set ShapeProc = ActiveSheet.Shapes.AddShape(msoShapeOval, 200, 100, 100, 80)
    MacroStyle ShapeProc, "P1" & Chr(13) & "設計する"

    Set ShapeDoc = ActiveSheet.Shapes.AddShape(msoShapeFlowchartDocument, 350, 110, 100, 60)
    MacroStyle ShapeDoc, "D1" & Chr(13) & "設計書"
    
    Set ShapeDocIn = ActiveSheet.Shapes.AddShape(msoShapeFlowchartDocument, 50, 110, 100, 60)
    MacroStyle ShapeDocIn, "D0" & Chr(13) & "仕様書"
    
    Set ShapeCon = ActiveSheet.Shapes.AddConnector(msoConnectorCurve, 100, 100, 100, 100)
    ShapeCon.Line.EndArrowheadStyle = msoArrowheadTriangle
    ShapeCon.ShapeStyle = msoLineStylePreset29
    ShapeCon.ConnectorFormat.BeginConnect ShapeProc, 7
    ShapeCon.ConnectorFormat.EndConnect ShapeDoc, 2

    Set ShapeConIn = ActiveSheet.Shapes.AddConnector(msoConnectorCurve, 100, 100, 100, 100)
    ShapeConIn.Line.EndArrowheadStyle = msoArrowheadTriangle
    ShapeConIn.ShapeStyle = msoLineStylePreset29
    ShapeConIn.ConnectorFormat.BeginConnect ShapeDocIn, 4
    ShapeConIn.ConnectorFormat.EndConnect ShapeProc, 3

End Sub

Sub MacroStyle(shape, text)
    
    shape.ShapeStyle = msoShapeStylePreset1
        
    With shape.TextFrame2
        With .TextRange
            With .Characters
                .text = text
                With .ParagraphFormat
                    .FirstLineIndent = 0
                    .Alignment = msoAlignCenter
                End With
            End With
            
            With .Font
                .NameComplexScript = "+mn-cs"
                .NameFarEast = "+mn-ea"
                .Fill.Visible = msoTrue
                .Fill.ForeColor.TintAndShade = 0
                .Fill.ForeColor.Brightness = 0
                .Fill.Transparency = 0
                .Fill.Solid
                .Size = 11
                .Name = "+mn-lt"
            End With
        End With
        .VerticalAnchor = msoAnchorMiddle
        .WordWrap = msoFalse
    End With

End Sub

おまけ

f:id:tkhrssk:20170604014016p:plain

コネクタ番号のメモ

参考

はじめてのCMake

まずはcmakeをインストール

Macの場合

https://cmake.org/download/dmg形式をダウンロードして、インストール

コマンドラインを通すには、 sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --installGUI版を起動し、メニューの Tools -> How To Install For Command Line Use で説明が出てくる。

UbuntuLinuxの場合

apt-get -y install cmake

何もしない makeの作成

とりあえず空ファイルの CMakeLists.txt を作って、UNIX Makefileを作ってみる。

$ touch CMakeLists.txt
$ cmake -G "Unix Makefiles"

-GはGeneratorの指定。あらかじめ使える種類は決まっている。--helpを参照。

上記実行後、以下のファイルが出来上がっている。

CMakeCache.txt
CMakeFiles
CMakeLists.txt
Makefile
cmake_install.cmake

make allとかが動く状態になっている。

Hello World

Hello Worldを実行するCのプログラム用のCMakeを作ろう。 ソースフィルは、hello.c。実行ファイルは、helloにしよう。

CMakeLists.txtに以下の記述をする。

project (Hello C)
add_executable(hello hello.c)

projectの二番目以降は言語を指定。C++だったらCXX。複数なら空白区切で並べる。 で、先ほどと同じように cmake後にmakeすれば もう出来上がり。

$ cmake -G "Unix Makefiles"
$ make
Scanning dependencies of target hello
[ 50%] Building C object CMakeFiles/hello.dir/hello.c.o
[100%] Linking C executable hello
[100%] Built target hello
$ ./hello
Hello CMake!

add_executable の 引数に、ソースファイルを増やしていけば、複数のソースからビルドできるようになる。

add_executable(hello hello.c hello2.c hello3.c)

cmakeに対するバージョンを要求することもできる。

cmake_minimum_required (VERSION 2.8)

ディレクトリ構成

buildというディレクトリを作って、そこからcmakeを叩くのが定石らしい。

rm -rf build
mkdir build
cd build
cmake -G "Unix Makefiles" ..
make

といった感じでスクリプトを組む。

コンパイルオプション

CMakeLists.txtに以下の記述をする。

set(CMAKE_C_FLAGS "-Wall")
set(CMAKE_CXX_FLAGS "-Wall")

make verboseするには

set(CMAKE_VERBOSE_MAKEFILE TRUE)