トップ 最新

kumaryu日記

2009-06-05 今日もプロファイル祭

_ [Riko] プロファイル分からない

ruby-profが落ちるのはRubyProf.stopのところだけGCを止めたらうまくいった。

それはいいんだが見方がやっぱりさっぱりわからん。

なんか実行時間360とか出てるんだけどこれ何よ。あ、デフォルトではclock関数の値を使うから単位はCLOCKS_PER_SECなのか。Intel Macでは分解能100。え、1/100秒単位?めちゃくちゃ適当じゃないですか。

計測単位をCPUカウンタにしてみたらでかい値になってくれた。あと実行もとても速くなった。よしよし…ってええっ!なんでclock関数でカウンタ取るのとCPUカウンタ取るので見た目に明らかな差が出る程速度が違うんだ?

MacOSXのclockのやろー中で寝てやがるのかな…。

で、結構精度良く取れたはいいんだけどやっぱりわかんないなぁ。どうもループしちゃうのはそれはそれでいいみたいなんだけど、ずっと辿っていっても90%以上の実行時間がどこかにいっちゃってるんだよね。どこいったー。

ああ、ruby-profのCPUカウンタって当然CPUのカウンタ使ってんのか。マルチコアでやばくね?とおもったらやはりやばいらしい。特定のコアだけで動くように設定しないとダメだよね。それなおして確認するか。大きくはかわらないだろうけど。

_ Instrumentsすごい

昨日はMacのInstrumentsには標準でRuby対応無いとか書いたけど、全然そんなこと無かった。

確かにライブラリには入ってないんだけど、新しいインストラクションを作るとRubyのカウンタ取れまくる。

dtraceのスクリプト書かなくても簡単に設定作れるってだけだけど、dtraceのスクリプトわけわかんねーし書きづらいからとても便利だよ!

と思ったんだけど、細かい動作指定するなら結局書かないといけないのか。

しかしほとんど何も書かなくてもバックトレースとか関数の実行時間の割合とかは勝手に表示された!すげー!

Obj-Cレベルでだけどな!!!

Rubyでくれ。

あと下手するとすぐ固まる。めっちゃ重い。メモリがやばい程くったりする。うーん、dtraceってすごいけどめちゃくちゃ使いづらくね?

やっぱりruby-profでいいわ。