From: Takahiro Sunaga Date: 2011-04-14T21:19:25+09:00 Subject: [ruby-list:47968] Re: Ruby用のリアルタイムプロファイラ 須永です。 バグレポートやGUIに対するご意見などありがとうございました。 参考にさせていただきます。 > 手元にある非公開のプログラム 2 つ (こっちはまともなもの) でも試して > みたところ、Thread0 の先まで展開できましたが、なぜか require が時間 > を消費しまくっていることになってました。 > どうも gem 関係の Class::load_specification とかいうメソッドで再帰 > してるように見えたのですが、プログラム自体はちゃんと動いているので、 > 実際にそうはなってないと思うのですが。 ただいずれにせよ実装のバグですが、もしかしたら画面が更新されていないかも しれません。今のところツリービューでF5キーを押すと一からすべて更新される ようになっているので試してみてください。 > - ぜひ gem にしてほしいです。勝手にやっていいということなら勝手 > にやります (誰かが) 。そういえば、ライセンスは? ライセンスの記述を忘れていました。 MIT Licenceということにしましたので、それでお願いします。 (2011年04月12日 03:45), Yusuke ENDOH wrote: > 遠藤です。 > > 2011年4月12日0:41 Takahiro Sunaga : >> 開発しているプロファイラについて宣伝させてください。 >> >> 現在リアルタイムで動作するRuby用実行時間プロファイラを開発しています。 >> まだまだ不安定ではありますが、ある程度使用できるものになりましたので以下 >> のページで公開しています。 >> http://sunagae.net/software/llprof >> >> 既にRuby用のプロファイラとしてはprofileやruby-profなどがありますが、それ >> らとは以下の点で異なっています。 >> ・別ホストからリアルタイムにプロファイリングの監視ができる >> ・コンテキストツリーをとってくるので、プログラムの文脈がより詳細に分かる >> ・低いオーバーヘッド (ruby-profよりも低い) >> >> もしご興味があればご覧頂ければとおもいます。 > > > 公開ありがとうございます。 > 使ってみましたが、動くような動かないような……。 > > > 自分の書いたコードで重くて公開済みでパッと思いついたものとして > > http://d.hatena.ne.jp/ku-ma-me/20101224/p1 > > のコードを > > $ ruby -rrrprof quinemas2010.rb > > と動かしてみたところ、GUI で Root > Thread0 より先が展開できません > でした。関係あるかわかりませんが java のコンソールにたまに下のような > 例外が出てました。 > > Exception in thread "Timer-0" java.lang.NullPointerException > at RRProf.Monitor.getProfileData(Monitor.java:160) > at RRProf.MonitorGUI$ProfileTimer.run(MonitorGUI.java:141) > at java.util.TimerThread.mainLoop(Timer.java:512) > at java.util.TimerThread.run(Timer.java:462) > > 変なコードのせいで行番号とかでバグをついてたりしますかね。 > > > 手元にある非公開のプログラム 2 つ (こっちはまともなもの) でも試して > みたところ、Thread0 の先まで展開できましたが、なぜか require が時間 > を消費しまくっていることになってました。 > どうも gem 関係の Class::load_specification とかいうメソッドで再帰 > してるように見えたのですが、プログラム自体はちゃんと動いているので、 > 実際にそうはなってないと思うのですが。 > > まだ安定版しか試していないので、暇なときにさらに調べてみます。 > > > あと、使いやすさの面で気になったことを 3 つ。 > > - ぜひ gem にしてほしいです。勝手にやっていいということなら勝手 > にやります (誰かが) 。そういえば、ライセンスは? > > - GUI の接続先のホスト名がデフォルトで godel なのはともかく、 > 一度入力したら覚えてほしいです。 > > - 測定ごとに GUI を立ち上げ直すのが面倒です :-) >