2

特定のコードについて、各行の実行にかかった時間の内訳を簡単に取得する方法はありますか?

4

4 に答える 4

3

Python コードはそのままでは実行されません。入力したプログラムは、最適化された中間形式にコンパイルされます。したがって、同じ行でも、周囲の行によって時間が異なる場合があります。また、Python にはデータに対する複雑な操作があり、操作にかかる時間は、処理される正確な値によって異なります。

于 2013-03-09T01:04:32.243 に答える
2

シェルで、cProfile モジュールをスクリプトとして実行できます。

python -m cProfile nameofscriptfile.py
于 2013-03-09T01:04:05.573 に答える
2
import timeit

timeit.timeit("5+3")
于 2013-03-09T01:04:26.757 に答える
2

これが手早く汚い方法です。

ステップ 1. 実行して、エンドツーエンドの全体時間を秒単位で取得します。本当に速い場合は、一時的な外側のループをラップして、少なくとも数秒かかるようにします。

ステップ 2.この例のように、一連のランダム時間スタック サンプルを取得します。実行時間が短い場合は、複数の実行でこれを行うことができます。

関心のある行は、サンプルの一部に表示されます。たとえば、10 個のサンプルのうち 3 個に表示された場合は、全体の時間の約 30% の間、そのステートメントが実行されていたことを意味します。

于 2013-03-09T02:34:46.443 に答える