使用 time.time() 为函数计时通常返回 0 秒

Cho*_*890 2 python algorithm time time-complexity

我必须为我在其中一个类中执行的算法计时,我正在使用 time.time() 函数来执行此操作。实现后,我必须在包含大小数据集的多个数据文件上运行该算法,以便正式分析其复杂性。

不幸的是,在小数据集上,即使我在查看较大数据集的运行时使用该函数获得 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)
Run Code Online (Sandbox Code Playgroud)

打印结果函数:

def printResults(time, solution, printList=True):
    print ("Temps d'execution = " + str(time) + "s")
    if printList:
        print (solution)
Run Code Online (Sandbox Code Playgroud)

Cho*_*890 5

我的问题的解决方案是使用 timeit 模块而不是 time 模块。

import timeit

...

def main(ville):
    start = timeit.default_timer()

    solution = dynamique(ville)

    end = timeit.default_timer()

    return (end - start, solution)
Run Code Online (Sandbox Code Playgroud)