我必須在我的類中的一個時間執行算法,並且我使用time.time()函數來執行此操作。在實現它之後,我必須在包含較小和較大數據集的大量數據文件上運行該算法,以正式分析其複雜性。使用time.time()來定時函數經常返回0秒
不幸的是,在小數據集上,即使我在查看大數據集的運行時時使用該函數得到0.000000000000000001的精度,我也會得到0秒的運行時間,我無法相信它實際上需要的時間少於在較小的數據集上。
我的問題是:是否有使用此功能的問題(如果有,是否有另一個我可以使用的功能有更好的精度)?或者我做錯了什麼?
這裏是我的代碼,如果你永遠需要它:
import sys, time
import random
from utility import parseSystemArguments, printResults
...
def main(ville):
start = time.time()
solution = dynamique(ville) # Algorithm implementation
end = time.time()
return (end - start, solution)
if __name__ == "__main__":
sys.argv.insert(1, "-a")
sys.argv.insert(2, "3")
(algoNumber, ville, printList) = parseSystemArguments()
(algoTime, solution) = main(ville)
printResults(algoTime, solution, printList)
的printResults功能:
def printResults(time, solution, printList=True):
print ("Temps d'execution = " + str(time) + "s")
if printList:
print (solution)
http://docs.python.org/2/library/timeit.html允許您多次執行片段。 – DTing
我能用我的函數實現timeit()的算法得到返回值嗎?我無法在文檔中看到包含該方面的示例。 – Choub890