【问题标题】:Why does the elapsed time of a function slightly change with every run?为什么每次运行时函数的运行时间都会略有变化?
【发布时间】:2018-06-20 05:26:04
【问题描述】:

这是一段代码,用于计算执行 for 循环所用的时间,该循环将 0 到 10000000 的整数相加并打印结果。

# time elapsed:

import time

start = time.time()

sum = 0
for num in range(10000000):
    sum += num

print("sum = ", sum)

end = time.time()
diff = end - start
print("time elapsed = ", diff) 

我的问题是为什么每次运行时开始时间和结束时间之间的时间差都会改变。这是相同代码的三个连续运行的输出:如您所见,我得到:1.84、1.91 和 1.97

#1
sum =  49999995000000
time elapsed =  1.8434970378875732

#2
sum =  49999995000000
time elapsed =  1.916696548461914

#3
sum =  49999995000000
time elapsed =  1.9736623764038086

【问题讨论】:

  • 时间会发生变化,因为您不是在实时操作系统上运行。当您的代码运行时,您的计算机正在做其他事情。

标签: python time elapsedtime elapsed


【解决方案1】:

简而言之,操作系统负责选择执行哪些程序,换句话说,由于CPU资源可以同时执行的程序数量有限,因此CPU不断在不同程序之间切换。您的程序由多个命令组成,因此,不能保证两次调用之间的时间总是相同的,因为 CPU 可能正忙于在它们之间运行的计算机中的其他程序。以下是 Anis 回答的更多details

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-01
    • 2020-04-18
    • 2021-02-11
    • 2020-08-05
    • 1970-01-01
    • 2016-05-24
    • 2020-10-31
    相关资源
    最近更新 更多