gpt4 book ai didi

python - python中函数的准确计时

转载 作者:IT老高 更新时间:2023-10-28 21:42:56 24 4
gpt4 key购买 nike

我正在 windows 上使用 python 编程,并希望准确测量函数运行所需的时间。我写了一个函数“time_it”,它接受另一个函数,运行它,并返回它运行所用的时间。

def time_it(f, *args):
start = time.clock()
f(*args)
return (time.clock() - start)*1000

我调用了 1000 次并将结果取平均值。 (末尾的 1000 常量是在毫秒内给出答案。)

这个函数似乎可以工作,但我有一种烦人的感觉,我做错了什么,而且这样做我使用的时间比函数运行时实际使用的时间要多。

有没有更标准或更可接受的方式来做到这一点?

当我将测试函数更改为调用打印以使其花费更长的时间时,我的 time_it 函数返回平均 2.5 毫秒,而 cProfile.run('f()') 返回平均 7.0 毫秒。我认为我的函数会高估时间,如果有的话,这是怎么回事?

另外一点,我关心的是功能之间的相对时间,而不是绝对时间,因为这显然会因硬件和其他因素而异。

最佳答案

使用 timeit module来自 Python 标准库。

基本用法:

from timeit import Timer

# first argument is the code to be run, the second "setup" argument is only run once,
# and it not included in the execution time.
t = Timer("""x.index(123)""", setup="""x = range(1000)""")

print t.timeit() # prints float, for example 5.8254
# ..or..
print t.timeit(1000) # repeat 1000 times instead of the default 1million

关于python - python中函数的准确计时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/889900/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com