我编写了一个python脚本,并尝试使用datetime
时间测量执行时间,如下所示:
from datetime import datetime
startTime = datetime.now()
// here several methods are called
runtime = datetime.now()-startTime
当我不同时间运行脚本时,相同代码块的执行时间不同。例如,我运行了脚本并花了.002秒,但是当我在2小时后运行相同的脚本时,它显示了不同的执行时间。
是否存在与CPU处理相关的任何可能影响python代码执行时间的内容。
答案 0 :(得分:3)
现代桌面操作系统,就像您和我现在使用的那样,总是会同时执行许多任务。这称为多任务。例如,处理鼠标和键盘输入,管理网络流量,渲染动画,闪烁文本光标以及其他一百万个。
CPU实际上一次只能做一件事,但它可以通过在需要执行的所有任务之间快速切换来实现多任务处理。它每秒在不同的进程之间切换数千次,因此它似乎同时完成所有这些。
当你的计算机运行你的python程序时,你的一些程序将由CPU执行,然后是一些其他的东西,然后最终你的程序。根据需要做的其他事情,即使执行完全相同数量的指令的程序,每次运行时也会使用不同的“wall-clock time”来完成。
最重要的是,python解释器,正在准备你的python脚本并决定做什么的程序是非常复杂的,并且在幕后做很多事情来尝试快速运行你的python。因此,每次解释脚本时,它可能会稍微或多或少地工作。
我鼓励您阅读Wikipedia article on Computer Multitasking;这是对这个概念的一个很好的介绍。