忍者ブログ
mirac cafe という名の不思議なブログ

※ ブログ等での私の投稿は個人の見解によるものであり、 所属する組織の見解ではありません。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

あけましておめでとうございます。

元旦はプロファイラ(プログラムのどこが遅いとかを教えてくれるプログラム)探しをしてました。

14日が論文の締め切りなんで頑張らねばー


以下備忘録。

$ python -m cProfile -o hoge.prof main.py
$ pyprof2calltree -i hoge.prof -k

とりあえずこれでメソッド単位のプロファイルができてGUI上で見れる。
GUIとかいらなければ以下のソースで

 import cProfile
 import pstats
 import main
 prof = cProfile.run("main.doit()", 'hoge.prof')
 p = pstats.Stats('hoge.prof')
 p.strip_dirs()
 p.sort_stats('cumulative')
 p.print_stats()

行単位で見たければ cProfileじゃなくてhotshotをlineevents=1で使う。

 import hotshot
 prof = hotshot.Profile('hoge.prof', lineevents=1)
 import main;
 prof.runcall(main.doit)
 prof.close()

1行ごとに保存されてるらしいけど、このままでは1行単位で見れなさそうorz
とりあえず、さっき出てきたGUIのやつで使える形式に変換。

 $ python hotshot2calltree -o hoge.prof.out hoge.prof

(これ結構時間かかる)
んでGUIを実行

 $ kcachegrind  hoge.prof.out

最後の2操作が面倒だから、なんか簡単にしたいのだけど今のところ不明でする。

kcachegrindはyumで入れれた。
hotshot2calltreeはkcachegrindのソースの中のconvert部分に入っていた。
もしかしたらそれ以外に簡単に入れる方法があるかも?
pyprof2calltreeはwebからソース落としてきてeasy_installしました。

さて、これぐらい書いたら次回迷わずに使えるかな??
PR
この記事にコメントする
お名前
タイトル
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
無題
追記。
kcachegrindで見るときは、左側から適当なメソッドを1つクリックした後で、
右側のタブからSourceを選ぶとそのメソッド内のソースコードと実行時間の表が見れまする
mirac 2012/01/01(Sun)13:29:23 編集
この記事へのトラックバック
この記事にトラックバックする:
カレンダー
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
フリーエリア
最新コメント
[11/30 kamae]
[04/30 mirac]
[04/29 渚]
[01/20 渚]
[01/01 mirac]
[12/09 mirac]
[10/31 mirac]
[03/14 mirac]
[08/10 404ななしさん]
[08/09 halwhite]
最新記事
最新トラックバック
ブログ内検索
忍者ブログ [PR]