「ヒープ細分化、プロセスサイズ削減パッチを作った」のテスト
jemallocの勉強は今日はお休みします。というか、ある程度読み進めないとどっから書いたらいいか分からなくなることに気づきました。gamellaさんに紹介してもらったのに申し訳ありません。私はRuby開発者なんていう立場じゃないのですが、そう呼ばれてかなり嬉しかったです。なにより紹介してくださってありがとうございます。出来る限りがんばります。
今日は、autorNariさんの「ヒープ細分化、プロセスサイズ削減パッチを作った」(http://d.hatena.ne.jp/authorNari/20080328/1206675485)の効果を見てみようと思います。
まな板に挙げるのはこのblogで時々出ているminilight(http://www.hxa7241.org/minilight/minilight.html)です。すみません、私もRailsは使ったことは無いので、Railsは試せません。minilightは大域光源レンダラなんですが、いろいろな言語版があります。そのなかでRuby版が一番遅いので、なんとかブービーにさせるのが私の夢です。
これで、付属のCornell Boxをレンダリングした結果です。
ちょっと今日は時間が無いので、表にはまとめませんが、パッチを当てるとgcの掛かる時間が妙に時間が掛かっているのが気になります。多分、集計方法の問題じゃないかなとは思います。
元の版
gc call = 18776 gc all time = 5433.99951457376 gc ave time = 0.289411989485181 gc min time = 0.0 gc max time = 3.80001068115234 mark call = 18781 mark all time = 10963.1061491469 mark ave time = 0.583733887926463 mark min time = 0.0 mark max time = 8300.09999084286 sweep call = 18781 sweep all time = 2496.11091014166 sweep ave time = 0.132906176994924 sweep min time = 0.0 sweep max time = 3.59999790089205 object ave cnt = 27998 object max cnt = 28000 object fin cnt = 28000
改良版
gc call = 21712 gc all time = 37968.9984189753 gc ave time = 1.74875637522915 gc min time = 0.0 gc max time = 25000.200009346 mark call = 21711 mark all time = 18286.5065373009 mark ave time = 0.842269197056834 mark min time = 0.0 mark max time = 12000.0999929383 sweep call = 21712 sweep all time = 23478.6201374671 sweep ave time = 1.08136607118032 sweep min time = 0.0 sweep max time = 21000.0999898883 object ave cnt = 26193 object max cnt = 26195 object fin cnt = 26195