timeit
模組提供了測試一小段**執行時間的功能。我前面有一篇文章用它來測試定義__slots__
對物件訪問速度的提公升情況,參見這裡 。
官方文件 上有下面這樣的使用例子:
# 從命令列呼叫
python -m timeit '"-".join([str(n) for n in range(100)])'
# 從repl呼叫
>>> import timeit
>>> timeit.timeit('"-".join([str(n) for n in range(100)])', number=10000)
0.7288308143615723
使用timeit
的時候可以直接呼叫其定義好的timeit.timeit
,timeit.repeat
,timeit.default_timer
方法,或者定義乙個類timeit.timer
,使用本身的方法。
# api
timeit.timeit(stmt='pass', setup='pass', timer=, number=1000000)
timeit.repeat(stmt='pass', setup='pass', timer=, repeat=3, number=1000000)
class timeit.timer(stmt='pass', setup='pass', timer=)¶
接下來看一些複雜點的示例
# 多行表示式的呼叫
>>> import timeit
>>> attribute is missing
>>> s = """\
... try:
... str.__nonzero__
... except attributeerror:
... pass
... """
>>> timeit.timeit(stmt=s, number=100000)
0.9138244460009446
# 測試函式呼叫時間
def test():
"""stupid test function"""
l =
for i in range(100):
if __name__ == '__main__':
import timeit
print(timeit.timeit("test()", setup="from __main__ import test"))
當我在網上瀏覽timeit相關資源時看到了這篇文章, 上面提到了通過上下文管理器(context manager)實現乙個計時器,利用了變數的生命週期相關特性(#todo),雖然就像作者所說,可以加上其它的特性比如迴圈次數等以及更優雅的實現乙個計時器,**如下,可供參考:
# source code:
__author__ = 'mengpeng'
import time
class timeme(object):
__unitfactor =
def __init__(self, unit='s', precision=4):
self.start = none
self.end = none
self.total = 0
self.unit = unit
self.precision = precision
def __enter__(self):
if self.unit not in timeme.__unitfactor:
raise keyerror('unsupported time unit.')
self.start = time.time()
return self
def __exit__(self, exc_type, exc_val, exc_tb):
self.end = time.time()
self.total = (self.end - self.start) * timeme.__unitfactor[self.unit]
self.total = round(self.total, self.precision)
def __str__(self):
return 'running time is '.format(self.total, self.unit)
執行示例:
from timeme import timeme
with timeme('ms', 6) as t:
result = sum(range(100000))
print(t) # running time is 5.2948ms
print(t.total) # 5.2948
計算執行時間
使用方法 double t double gettickcount do something t double gettickcount t gettickfrequency 所用函式為gettickcount 和gettickfrequency gettickcount 返回cpu自某個時間 如啟...
計算執行時間
import datetime starttime datetime.datetime.now long running endtime datetime.datetime.now print endtime starttime seconds 上例演示了計算執行時間的例子,以秒進行顯示。d1 da...
計算程式執行時間
在長時間計算程式執行時間時,可以使用clock函式。clock比較通用,精度並不是特別的高,大約是10ms。但是對於長時間的計算的話,還是可以使用的。以下是一段示例程式,將幫助你理解 include stdio.h include memory.h include time.h define siz...