Python–計算運行時間
- 2020 年 1 月 11 日
- 筆記
1.實際需求
在很多的時候我們需要計算我們程式的性能,常用的標準是時間複雜度,因此需要統計程式運行的時間。Python中有很多計算程式運行時間的方法。
2. 方法展示
計算Python的某個程式,或者是程式碼塊運行的時間一般有三種方法。
import datetime start = datetime.datetime.now() run_function(): # do something end = datetime.datetime.now() print('totally time is ' end - start)
import time start = time.time() run_function() end = time.time() print (str(end))
import time start = time.clock() run_function() end = time.clock() print (str(end-start))
方法對比
- 通過對以上方法的比較可以發現,方法二的精度比較高。方法一基本上是性能和系統有關係,比如晶振,比特。一般情況下推薦使用方法二和方法三。方法二顯示的是UTC時間。 在很多系統中time.time()的精度都是非常低的,包括windows。
- python的標準庫手冊推薦在任何情況下盡量使用time.clock().但是這個函數在windows下返回的是真實時間(wall time)
- 方法一和方法二都包含了其他程式使用CPU的時間。方法三隻計算了程式運行CPU的時間。
- 方法二和方法三都返回的是浮點數
那究竟 time.clock() 跟 time.time(),誰比較精確呢?帶著疑問,查了 Python 的 time 模組文檔,當中 clock() 方法有這樣的解釋(來自官方文檔)

time.clock() 返回的是處理器時間,而因為 Unix 中 jiffy 的緣故,所以精度不會太高。clock轉秒,除以1000000。
我們要實現跨平台的精度性,我們可以使用timeit 來代替time.
import timeit start = timeit.default_timer() do_func() end = timeit.default_timer() print str(end-start)
Reference
[1]http://www.cnblogs.com/youxin/p/3157099.html [2]http://coreygoldberg.blogspot.hk/2008/09/python-timing-timeclock-vs-timetime.html [3]http://www.cnblogs.com/moinmoin/archive/2011/03/18/python-runtime-measuring.html [4]http://www.cnblogs.com/BeginMan/p/3178223.html [5]http://blog.sina.com.cn/s/blog_56d8ea900100xzg3.html