繁体   English   中英

为什么 Python 程序运行的次数越多越快?

[英]Why does a Python program get faster the more times it is run?

这不是问题,我只是好奇。 在 Atom 中,经过多次测试后,我意识到我创建的每个 python 程序运行的次数越多,它们运行得越快(运行几次后它们确实达到了某种平衡),我只是想知道为什么会发生这种情况。 程序并不大(不超过 100 行),所以我最好的猜测是时间变化可以通过变量的初始构造和一般设置来解释,但我不确定。

对于背景信息,我获取时间的方式是使用 rgbkrk 的“脚本”包,它处理输出并记录时间。 我认为代码无关紧要,因为许多不同类型的测试都会产生相同的结果,所以这里只是一些示例时间:

0.641s 完成 0.257s 完成 0.06s 完成 0.049s 完成 0.049s 完成 0.058s 完成

我不完全确定为什么会发生这种情况,因此解释会有所帮助。 谢谢。

编辑:不需要代码,即使没有任何代码也会发生同样的事情。 我打开 Atom 并运行了几次空文件,发生了同样的事情。(第一次运行后运行时间变快了)。

令人惊讶的明显性能可以追溯到您运行的特定操作系统如何决定如何在内存中缓存(相对较慢的)磁盘中的块。 第一次运行时,不会缓存任何内容。 在后续运行中,根据在此期间争夺操作系统磁盘缓存的内容,将缓存更多内容。 当您再次运行时,不必对磁盘进行处理是一个很大的性能优势。

您可能会发现,如果您稍等片刻,然后运行其他一些磁盘占用空间较大的程序,那么下次运行 Python 代码时会变慢。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM