2011-04-11 52 views

回答

30

你可能想看看timeit模塊:

http://docs.python.org/library/timeit.html

profile模塊:

http://docs.python.org/library/profile.html

這裏有一些另外一些很好的教程:

http://www.doughellmann.com/PyMOTW/profile/index.html

http://www.doughellmann.com/PyMOTW/timeit/index.html

而且time模塊也可能會派上用場,但我更喜歡進行基準測試和分析代碼的性能後兩個建議:

http://docs.python.org/library/time.html

+1

謝謝!這很好。對於其他可能第一次使用timeit的人來說,您需要通過timeit的設置參數導入本地定義的符號。例如(如果myOwnFunc是本地定義的,你想要的時間):'print timeit.timeit('myOwnFunc()',setup ='from __main__ import myOwnFunc',number = 1)'。沒有安裝參數,它會抱怨它找不到myOwnFunc。 – Landshark666 2012-12-24 04:13:23

4

@JoshAdel覆蓋了很多,但如果你只是想要執行整個腳本的時間,你可以運行它在time在類Unix系統上。

kotai:~ chmullig$ cat sleep.py 
import time 

print "presleep" 
time.sleep(10) 
print "post sleep" 
kotai:~ chmullig$ python sleep.py 
presleep 
post sleep 
kotai:~ chmullig$ time python sleep.py 
presleep 
post sleep 

real 0m10.035s 
user 0m0.017s 
sys 0m0.016s 
kotai:~ chmullig$ 
129

快速替代

import timeit 

start = timeit.default_timer() 

#Your statements here 

stop = timeit.default_timer() 

print stop - start 
+2

@hajder它給出的時間在秒內是正確的?! – diffracteD 2014-03-14 11:22:42

+0

@diffracteD是,UNIX EPOCH。 http://docs.python.org/2/library/timeit.html#timeit.default_timer和 http://www.epochconverter.com/ – Rabiees 2014-03-14 17:48:46

+0

但是default_timer()測量掛鐘時間,因此任何其他程序都會干擾測量。 – karzler007 2016-02-23 14:09:19

14

我不知道這是否是一個更快的替代方案,但我有另一種解決方案 -

from datetime import datetime 
start=datetime.now() 

#Statements 

print datetime.now()-start