为什么同一段Python代码的执行时间不同?

2 投票
1 回答
1308 浏览
提问于 2025-04-18 20:28

我写了一个Python脚本,想用datetime来测量执行时间,像这样:

from datetime import datetime
startTime = datetime.now()
// here several methods are called
runtime = datetime.now()-startTime

同一段代码在不同时间运行时,执行时间是不同的。例如,我运行这个脚本时,它花了0.002秒,但过了两个小时再运行同样的脚本时,显示的执行时间就不一样了。

是不是有跟CPU处理有关的东西,会影响Python代码的执行时间呢?

1 个回答

4

现代桌面操作系统,比如你我现在使用的这些,能够同时处理很多任务。这种能力叫做 多任务处理。比如说,它可以同时处理鼠标和键盘的输入、管理网络流量、渲染动画、闪烁文本光标,还有很多其他事情。

其实,CPU(中央处理器)一次只能做一件事,但它通过非常快速地在所有需要处理的任务之间切换,来实现多任务处理。它每秒可以在不同的 进程 之间切换上千次,这样看起来就像是同时在做很多事情。

当你的电脑运行你的Python程序时,CPU会先执行你程序的一小部分,然后再执行其他的东西,最后再回到你程序的另一小部分。根据其他需要处理的任务,即使是执行相同数量指令的程序,每次运行所需的 "实际时间" 也可能会不同。

除此之外,Python解释器(负责准备你的Python脚本并决定如何执行的程序)非常复杂,它在后台做了很多工作,试图快速运行你的Python代码。因此,每次解释你的脚本时,它可能会多做或少做一些工作。

我建议你去看看 维基百科关于计算机多任务处理的文章;这是一篇很好的入门介绍。

撰写回答