2

壁時計と CPU 時間を分離して、Python で関数のパフォーマンスを測定する方法を探しています。

私はpythonプロファイラーを調べましたが、それらはプログラムをスキャンするように設計されており、機能だけではないようです。http://docs.python.org/2/library/profile.htmlから:

注意: プロファイラー モジュールは、ベンチマーク目的ではなく、特定のプログラムの実行プロファイルを提供するように設計されています (そのため、かなり正確な結果を得るために timeit があります)。これは特に、C コードに対する Python コードのベンチマークに当てはまります。プロファイラーは Python コードのオーバーヘッドを導入しますが、C レベル関数のオーバーヘッドは導入しないため、C コードはどの Python コードよりも高速に見えます。

次に timeit モジュールを試してみました: http://docs.python.org/2/library/timeit.htmlですが、CPU と壁時計の時間の分離をサポートしていないようです。私が理解しているように、それは総実​​行時間を測定するだけです。

私が探しているのは次のようなものです:

$ time python yourprogram.py

real    0m1.028s
user    0m0.001s
sys     0m0.003s

ただし、コマンド ラインから呼び出す代わりに、Python コードから呼び出す必要があります。

R の system.time() のようなもの:

print(system.time(replicate(repeats, factorialRecursive(150))))
 user  system elapsed 
0.041   0.001   0.041 

Pythonでこれを達成するにはどうすればよいですか?

4

1 に答える 1