この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
software:llprof [2011/04/14 21:22] sunagae [動作環境] |
software:llprof [2014/06/06 22:59] sunagae [Zipアーカイブ] |
||
---|---|---|---|
ライン 1: | ライン 1: | ||
- | ====== 軽量言語向けプロファイラ (llprof) ====== | + | ====== 軽量言語向けリアルタイムプロファイラ (llprof) ====== |
- | * を目指しているけど今はRuby専用のプロファイラ | + | * いまのところPythonとRubyで使えます |
===== 構成 ===== | ===== 構成 ===== | ||
* 右図のような構成 | * 右図のような構成 | ||
- | * Pythonがどうとか書いてあるけどまだできてません・・・ | ||
<graphviz dot right> | <graphviz dot right> | ||
digraph usage { | digraph usage { | ||
node [shape = box fontsize=10 style=filled ]; | node [shape = box fontsize=10 style=filled ]; | ||
- | monitor[label = "llprof Monitor" fillcolor = "#F0FFF0" ]; | ||
- | rrprofext [label = "Ruby Profiler Module\n(Profiling module)" fillcolor = "#FFF0F0" ]; | ||
- | # pyprofext [label = "(Python Profiler Module)" fillcolor = "#FFF0F0" ]; | ||
- | rrprofext -> monitor [ label = "LAN" ]; | + | viewer[label = "Viewer\n(Web browser)" fillcolor = "#F0F0FF" ]; |
- | pyprofext -> monitor [ label = "LAN" ]; | + | server[label = "Profiling Server" fillcolor = "#F0FFF0" ]; |
+ | rrprofext [label = "Ruby Profiling Module" fillcolor = "#FFF0F0" ]; | ||
+ | pyprofext [label = "Python Profilering Module" fillcolor = "#FFF0F0" ]; | ||
+ | |||
+ | rrprofext -> server [ label = "Network" ]; | ||
+ | pyprofext -> server [ label = "Network" ]; | ||
+ | server -> viewer [ label = "Network" ]; | ||
} | } | ||
</graphviz> | </graphviz> | ||
- | * 言語処理のモジュールとしてプロファイリングモジュールがあり、それらからモニタプログラムへプロファイル情報を送る | + | * 三つの部分に分かれていてそれぞれネットワークで接続できます |
- | * モニタプログラムはそれを受け取り、表示する | + | * プロファイリングモジュール: プロファイル情報サーバーへプロファイル情報を送る |
+ | * プロファイル情報サーバー: 情報を貯めておく | ||
+ | * プロファイル情報ビューア: 情報をユーザーが見るための部分。Webブラウザで動く。 | ||
===== Demo video ===== | ===== Demo video ===== | ||
* 説明がないので細かいことは分からないと思いますが、とりあえず見た目はこんな感じに動くということで | * 説明がないので細かいことは分からないと思いますが、とりあえず見た目はこんな感じに動くということで | ||
+ | ==== llprof ver-0.3 with rdoc ==== | ||
+ | {{youtube>large:H93zJMYPl0E}} | ||
+ | |||
+ | ==== llprof ver-0.2 with rdoc ==== | ||
+ | * 古いやつです | ||
{{youtube>large:YUJEHe2kFJE}} | {{youtube>large:YUJEHe2kFJE}} | ||
ライン 31: | ライン 39: | ||
* 現在作業中 | * 現在作業中 | ||
* モニタは動いたようです | * モニタは動いたようです | ||
+ | |||
==== 依存するソフトウェア ==== | ==== 依存するソフトウェア ==== | ||
* Javaを動かせるもの (llprofモニター用) | * Javaを動かせるもの (llprofモニター用) | ||
ライン 36: | ライン 45: | ||
==== 確認環境 ==== | ==== 確認環境 ==== | ||
* Gentoo Linux (32bit/64bit) | * Gentoo Linux (32bit/64bit) | ||
- | + | * Ruby 1.9.2 | |
- | ====== Download/入手方法 ====== | + | * Python 3.1 |
- | * Mercurialのレポジトリ: http://www.sunaga-lab.net/hgrepos/llprof | + | ====== ダウンロード ====== |
+ | ===== Mercurialのレポジトリ ===== | ||
+ | * Mercurialのレポジトリ: http://www.sunaga-lab.com/hgrepos/llprof | ||
* ここからcloneできます | * ここからcloneできます | ||
- | * (コマンド例) hg clone http://www.sunaga-lab.net/hgrepos/llprof | + | * (コマンド例) |
- | * zip | + | |
- | * [[http://www.sunaga-lab.net/hgrepos/llprof/archive/release.zip|あるていど安定版]] | + | |
- | * [[http://www.sunaga-lab.net/hgrepos/llprof/archive/tip.zip|tip]] | + | |
- | + | ||
- | ====== インストール ====== | + | |
- | ===== プロファイリングモジュールのコンパイル方法 ===== | + | |
- | * 通常のRubyモジュールのとおりにコンパイルすることができます。 | + | |
- | * rrprofextがRubyモジュールのディレクトリで、extconf.rbを実行したのち、make && make installでインストールすることができます。 | + | |
- | + | ||
- | (実行例) | + | |
- | <code base> | + | |
- | $ cd rrprofext | + | |
- | $ ruby extconf.rb | + | |
- | $ make | + | |
- | $ make install | + | |
- | </code> | + | |
- | + | ||
- | ====== 使用方法 ====== | + | |
- | ===== プロファイリングモジュールの使用方法 ===== | + | |
- | * 本モジュールを読み込ませることで実行させることができます。 | + | |
- | * 一つの方法としては、環境変数RUBYOPTに-rオプションを指定して実行する方法があります。 | + | |
- | * (本プロファイラ+rdocの実行例) | + | |
<code bash> | <code bash> | ||
- | $ export RUBYOPT="-r rrprof" | + | hg clone http://www.sunaga-lab.com/hgrepos/llprof |
- | $ rdoc | + | # 安定版へ更新 |
+ | hg update stable | ||
+ | # 最新版へ更新 | ||
+ | hg update | ||
</code> | </code> | ||
- | ===== モニタプログラムの使用方法 ===== | + | ===== Zipアーカイブ ===== |
- | * モニタプログラムはmonitorディレクトリ以下にあるrrprof_monitor.jarを実行することで使用できる | + | * [[http://www.sunaga-lab.com/hgrepos/llprof/archive/ver-0.3.1.zip|Version 0.3.1]] |
- | * メニューから「Connect」を選択し、プロファイリングモジュールを実行しているホストに対して接続することで | + | * JavaScriptのモニタバージョン (JS + webmon + pm) |
- | 情報の表示を開始することができる | + | * ダウンロードはできますが、まだ不安定なうえドキュメントほぼゼロなのでそのへんの整備はしばらくお待ちを |
- | * (ソースコードはmonitorディレクトリ以下のRRProfにあります) | + | * なんか必要があれば sunagae at sunagae.net に連絡頂ければと |
+ | * [[http://www.sunaga-lab.com/hgrepos/llprof/archive/ver-0.2.zip|Version 0.2]] | ||
+ | * Javaバージョンでのモニタ | ||
+ | * XMLでエクスポートできます | ||
+ | * [[http://www.sunaga-lab.com/hgrepos/llprof/archive/stable.zip|安定版 = 0.2]] | ||
+ | * [[http://www.sunaga-lab.com/hgrepos/llprof/archive/tip.zip|最新版 (かなり不安定)]] | ||
- | ==== GUIについて ==== | + | ====== ドキュメント ====== |
- | * ツリービューは初期状態ではルートノードのみ表示されます。ノードをダブルクリックすることで子ノードを表示可能です | + | * [[.:llprof:doc-0.3]] |
- | * 現在はツリービューが更新されない不具合がある気がします。あやしいときはツリービューでF5キーを押すと全部更新されます | + | * [[.:llprof:doc-0.2]] |
====== ライセンス ====== | ====== ライセンス ====== | ||
* 本ソフトウェアはMIT-Licenceです。 | * 本ソフトウェアはMIT-Licenceです。 | ||