Python 中函数之间的 time.time() 问题

问题描述 投票:0回答:1

我正在 ubuntu 上使用 Python 3.10.12 运行这个程序。我需要测量用于评估概率函数的时间。这是代码。

def likelihood(x, fun):
    if fun == 0:
        rosenbrock(x)
    else:
        rosenbrock_simplified(x)


def rosenbrock(x):
    for i in range(3000):
        # some calculation
    return logl

def time_evaluation():
   
    x = np.random.normal(size=2)
    start = time.time()
    value = likelihood(x, 0)
    stop = time.time()

    return stop - start

运行此代码我获得的时间值很少。如果我运行这段代码来测量函数内部的时间

rosenbrock
,值会更高。 time.time() 是否可能只测量似然函数调用所需的时间?

正如我之前所说,我通过在

time.time()
函数内移动
rosenbrock
注意到了这种时间差异。

python time
1个回答
0
投票

这些时间差异可能是由于运行代码所需的时间较短造成的。这种情况下总会有一些波动。

您应该运行您的函数,例如1000 次,测量完成所有 1000 次调用所需的时间,然后将时间除以调用次数,得到一次调用的时间。

© www.soinside.com 2019 - 2024. All rights reserved.