python time timeit_python运行时间计算之timeit
timeit.timeit(stmt='pass', setup='pass', timer=, number=1000000)
stmt:statement,即使要執行的東西
setup:賦值予stmt中某些不明確的變量對象,如果stmt已經足夠明確了,那就可以省略
timer:
number:運行的次數
e.g1:setup是如何用的
>>> import timeit
>>> timeit.timeit('char in text', setup=' text = "sample string"; char = "g" ') #此地就是setup分別對stmt中的char與text兩個變量賦予了值,注意,多附值語句用’;‘相隔
0.41440500499993504
>>> timeit.timeit('text.find(char)', setup=' text = "sample str"; char = "g" ')
1.7246671520006203
e.g2:如何運行一段字符串型代碼
>>> s = """\
... try:
... str.__bool__
... except AttributeError:
... pass
... """
>>> timeit.timeit(stmt=s, number=100000)
0.9138244460009446
>>> s = "if hasattr(str, '__bool__'): pass"
>>> timeit.timeit(stmt=s, number=100000)
0.5829014980008651
e.g3:如何運行函數以及類的方法
運行函數:
IDE中:
s="""
def multinumber(a,b):
return a*b
"""
print( timeit.timeit('multinumber(3,4)', setup= s) )
命令行中:
>>> timeit.timeit( "f()" , """
... def f():
... pass
... """ )
0.13721893899491988
運行類方法:
IDE中:
s="""
class SomeClass:
def method(self):
pass
"""
print(timeit.timeit( "SomeClass().method", s ))
命令行中:
>>> timeit.timeit( "obj.method()", """
... class SomeClass:
... def method(self):
... pass
... obj= SomeClass() #注,此setip中即完成了類定義,還完成了賦值
""")
0.1980541350058047
其中用的最多應該就是.eg3了,因為大量情況下我們需要用它來看一個函數的運行時間,或者是用類實現了一種數據結構類型,查看其各種方法的時間
總結
以上是生活随笔為你收集整理的python time timeit_python运行时间计算之timeit的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 初识Lucene.net
- 下一篇: 转:C#判断ContextMenuStr