2012-09-02 8 views
11
--profile-統計ファイル出力--with-プロファイルnosetest

nosetest --with-profileでcProfileを使用するには?

私が読むことのできるファイルを生成する場合はnosetestは、名手を使用しているため、出力は、runsnakeで読み取ることができませんrunsnake、私はそれを変換する必要があります。

ST = hotshot.stats.load( '出力')

st.dump_stats( 'output_new')

私はrunnakeを使って読み込むためにcProfileで直接テストを実行できますか?

私の英語については申し訳ありません。 ありがとう!

+0

nosetestsがホットスポットを選択すると奇妙に思われる –

+1

これは便利でしょうか:https://github.com/msherry/nose-cprof? (私はまだこれを自分で試していませんでした) – uhz

答えて

2

pythonプロジェクト以外のnosetestに関する情報はありません。そう;そして

python -m cProfile -o outputfile nosetest 

runsnake outputfile 

RunSnakeRunプロファイラを視覚化するめちゃめちゃ有用です。

注:runsnakeを実行するには、wxとnumpyをインストールする必要があります。

更新:from omikron's comment; runsnakerunはpython3のプロファイル出力をサポートできません。 cihanpesendの答えは私のためではない、かなりの仕事をしてくれました@(cProfileは「nosetests」を見つけることができませんでした)

+4

Python 3のコードをプロファイリングするときに 'runsnakerun'が動作しなくなり、もはやメンテナンスされていないように見えることに注意してください。代わりに 'kypache2calltree'と' kcachegrind'を使うことをお勧めします。 – omikron

3

(私は試していない)が、私は使用してLinux上での成功を持っていなかった:

python -m cProfile -o profile.out `which nosetests` . 

結果を出力はrunsnakeで正常に動作します。

(おそらくWindows上であなたはnosetestsにハードコーディングされたパスのトップレベルのPythonスクリプトでwhich nosetestsを置き換えることができます。)

私はnosetests'名手プロファイラからの出力は互換性がないことを、あなたが正しいだと思うランナケと一緒に。確かに2つは一緒に私のための箱から素敵な演奏されません。

1

それとも、鼻cprofプラグイン試すことができます:それは@squidの答えに進化cProfile

9

と名手を置き換えhttps://github.com/msherry/nose-cprof

を、あなたは鼻のデフォルトを交換するnose-cprof呼ばプラグインを使用することができますプロファイラー、ホットショット、cProfileそれをインストールするには

pip install nose-cprof 

その後はこのように鼻を呼び出す:

nosetests --with-cprofile 

をそれはあなたが、その後runsnakerunのようなツールを使って分析することができ、cProfile出力ファイルを生成する必要があります。

+0

私はプラグインがうまく動かなかった:pip installはうまく見えるが、--with-cprofileを実行するとフラグが見つからない。私は代わりに - with-profileに行きました。 – Priyeshj

関連する問題