[英]How to reduce the run - time of python program ( program takes a lot of time in execution)
[英]How to time how long a Python program takes to run?
有沒有一種簡單的方法來計算Python程序的執行時間?
澄清:整個計划
使用timeit
:
該模塊提供了一種簡單的方法來計算一小段Python代碼。 它既有命令行,也有可調用的接口。 它避免了許多用於測量執行時間的常見陷阱。
你需要一個字符串中的python語句; 如果你的代碼中有一個main函數,你可以像這樣使用它:
>>> from timeit import Timer
>>> timer = Timer('main()', 'from yourmodule import main')
>>> print timer.timeit()
第二個字符串提供設置,第一個語句的定時環境。第二個部分沒有定時,用於設置階段。 然后第一個字符串貫穿它的步伐; 默認為百萬次,以獲得准確的時間。
如果您需要更詳細的信息,請使用其中一個python profilers
:
分析器是一個描述程序運行時性能的程序,提供各種統計信息。
最簡單的方法是使用命令行中的cProfile
模塊:
$ python -m cProfile yourprogram.py
您可能想要使用內置的分析器 。
您還可以使用以下簡單的裝飾器來測量函數的運行時間:
import time
def myprof(func):
def wrapping_fun(*args):
start = time.clock()
result = func(*args)
end = time.clock()
print 'Run time of %s is %4.2fs' % (func.__name__, (end - start))
return result
return wrapping_fun
用法:
@myprof
def myfun():
# function body
如果您使用的是Linux / Unix / POSIX兼容平台,請使用time
。 通過這種方式,您不會干擾腳本,也不會因為不必要的詳細(適合您)分析而減慢速度。 當然,您可以將它用於幾乎任何事情,而不僅僅是Python腳本。
使用timeit
>>> import timeit
>>> t = timeit.Timer(stmt="lst = ['c'] * 100")
>>> print t.timeit()
1.10580182076
>>> t = timeit.Timer(stmt="lst = ['c' for x in xrange(100)]")
>>> print t.timeit()
7.66900897026
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.