2017-06-16 12 views
0

私のコードでは、forループの実行時間は約1000回の反復後に約1秒増加しています。だから、私は疑問に思っています、私のforループ内に何か間違っています。私は1000反復後にブレークポイントを持っていますが、私はどのラインがより多くの時間を取っているか知る必要があります。 time.time()を使用すると、行ごとのデバッグは確かに良い考えではありません。私はtimeitを使用してコードブロックの正確な実行時間を得ることができましたが、forループ内の各行の実行時間を取得する必要があるため、ループ全体ではなく各ケースの実行時間を取得する必要があるため、この場合、私は何をすべきですか?デバッグにはpycharmを使用しています。このエディタにはオプションがありますか?python debugging-ループ内の各行の実行時間を取得します

+0

[あなたはどのようにpythonスクリプトのプロファイルを作成できますか?](https://stackoverflow.com/questions/582336/how-can-you-profile-a-python-script) – SH7890

答えて

1

プロフェッショナル版のPyCharmを使用している場合は、組み込みのprofilerを使用できます。

それ以外の場合は、this answerを参照してください。 また、line_profilerをご覧ください。

+0

はい、私はプロフェッショナル版。ありがとう。 – sovon

+0

pycharmのデフォルトのcProfilerでプログラムを実行するだけですが、行の実行時間を示すものは表示されません。 – sovon

+0

統計ページでは、ほとんどの負荷を引き起こした原因を確認することができます。呼び出された時間と呼び出された時間。それ以外の場合は、[line_profiler](https://github.com/rkern/line_profiler)または[memory_profiler](https://pypi.python.org/pypi/memory_profiler)を参照してください。 – grundic

関連する問題