2013-01-22 8 views
27

Javaではこれが可能ですHow to measure time taken by a function to executeどのようにPythonのコードの行の間に撮影時間を測定するには?

しかし、どのようにそれがPythonで行われますか?コードの行間の開始時間と終了時間を測定するには?これを行い 何か:

import some_time_library 

starttime = some_time_library.some_module() 
code_tobe_measured() 
endtime = some_time_library.some_module() 

time_taken = endtime - starttime 

答えて

52

あなたはそのためtime.clockを使用することができます。

import time 
start = time.clock() 
#your code here  
print time.clock() - start 

最初のコールでタイマーがオンになり、2回目のコールで経過した秒数が示されます。

timeitprofileのような優れたプロファイリングツールがありますが、しかし、この1つは時間を測定し、これはあなたを約

+26

これを求めているものですが、あなたが 'time.clockを()'を使用する方法ではなく、 '時間.clock() 'はUnix上のCPU時間を測定しますが、Windowsでは壁の時間を測定します。動作がOSによって変化しない場合、 'time.time()'を使うほうが良いでしょう。 http://stackoverflow.com/questions/85451/python-time-clock-vs-time-time-accuracy – Tim

+2

良い観察、@ティム。しかし、同じ質問の別の記事では、 "これはPythonやタイミングアルゴリズムのベンチマークに使う関数です"というtime.clock()のpython docを引用しています。私はあなたが実際に測定したいものの質問に行くと思う。 –

+0

time.time()についての非常に悪いことは、それが時間のsunchronization ntpdateなどの影響を受けることです。私はtime.clock()がこれのために唯一の信頼できる代替手段であると言います –

関連する問題