13

NOSETEST --with-profile --profile-stats-file の出力

ノーズテストはホットショットを使用するため、runsnake で出力を読み取ることができません。runsnake で読み取ることができるファイルを生成したい場合は、次のように変換する必要があります。

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

st.dump_stats('output_new')

runsnake で読み取るために、cProfile で直接テストを実行できますか?

4

5 に答える 5

4

@cihanpesendの答えはうまくいきませんでした(cProfileは「nosetests」を見つけることができませんでした)が、次を使用してLinuxで成功しました:

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

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

which nosetests(おそらく Windows では、nosetests の最上位の Python スクリプトへのハードコードされたパスに置き換えることができます。)

ノーズテストのホットショットプロファイラーからの出力がrunsnakeと互換性がないというのは正しいと思います。確かに、私にとっても、最初からこの 2 つが一緒にうまく機能するわけではありません。

于 2013-07-18T14:31:23.390 に答える
2

それがpythonプロジェクトであることを除いて、ノーズテストに関する情報はありません。そう;

python -m cProfile -o outputfile nosetest

それで、

runsnake outputfile

RunSnakeRun は、プロファイラーを視覚化するのに非常に役立ちます。

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

更新: omikron のコメントから; runsnakerrun は python3 プロファイル出力をサポートできません。(私は試していません)

于 2013-06-03T14:56:30.813 に答える
1

または、nose-cprof プラグインを試すこともできます: https://github.com/msherry/nose-cprof 

hotshot を cProfile に置き換えます

于 2013-10-22T17:09:50.910 に答える
0

pyprof2calltree:

$ pip install pyprof2calltree
$ nosetests --with-cprofile --profile-stats=profile.out tests/
$ pyprof2calltree -i profile.out -k

xdot:

$ sudo apt install xdot
$ gprof2dot -f pstats profile.out | dot -Tpng -o profile.png
于 2019-03-14T12:47:51.090 に答える