脳ざらし紀行


2008-03-16

_ ruby のメモリプロファイル

gc.c を改良する前に、何がどうなってプロセスサイズが 500MB にもなるかを測定できるようにした方がよいのでは。ということで、gc.c に手を加えて

$ ./ruby-1.9 -e '$a = " "*1024*1024; b = " "*1024*1024; GC.stats'
                          vm:       1157 kb
             machine_context:          1 kb
                     symbols:         63 kb
  protected global variables:          0 kb
                    end_proc:          0 kb
            global variables:       1025 kb
                     classes:          1 kb
                        trap:          0 kb
  generic instance variables:          0 kb
                      parser:          0 kb

などという機能をつくってみた。これだとあんまり役に立たないな。やりなおし。

こういう方がわかりやすいか。

./ruby-1.9 -e '
th = Thread.new{ a = " "*1024*1024; sleep 1}
sleep 0.1
p GC.memsize(th)/1024'
1157

スレッドのスタックを走査するメソッドも作ってみた。

$ ./ruby-1.9 -e '
th = Thread.new{ a = "hoge" }
sleep 0.1
p GC.traverse(th)'
[Thread, #<Proc:0xb7a55714@-e:1>, [], #<ThreadGroup:0xb7a5f548>, "hoge", main]
お名前:
E-mail:
コメント:
本日のリンク元

最近のコメント

2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|04|05|
2011|04|
2012|03|07|
2013|01|02|07|
トップ «前の日記(2008-03-02) 最新 次の日記(2008-03-21)» 編集