为什么函数的运行时间会随着每个 运行 而略有变化?
Why does the elapsed time of a function slightly change with every run?
这是一段代码,用于计算执行 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
简而言之,操作系统负责选择执行什么程序,换句话说,CPU不断在不同程序之间切换,因为可以同时执行的程序数量仅限于 CPU 资源。您的程序由多个命令组成,因此无法保证两次调用之间的时间总是相同,因为 CPUs 可能正忙于它们之间计算机中的其他程序 运行。 Anis.
回答了更多 details
这是一段代码,用于计算执行 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
简而言之,操作系统负责选择执行什么程序,换句话说,CPU不断在不同程序之间切换,因为可以同时执行的程序数量仅限于 CPU 资源。您的程序由多个命令组成,因此无法保证两次调用之间的时间总是相同,因为 CPUs 可能正忙于它们之间计算机中的其他程序 运行。 Anis.
回答了更多 details