为什么python程序第一次运行速度很慢?

时间:2013-10-30 14:02:39

标签: python performance

我制作了一个简单的程序,用于搜索特定目录中的特定文件 该程序的问题在于它第一次运行速度非常慢,但与第一次运行它时相比非常快。我正在粘贴相同的截图。我想知道,为什么会这样?我在Windows 7以及ubuntu 12.04 LTS上都发现了相同的东西,但速度差异(或者在Windows 7上的时差很大。enter image description here

查看第二次和第三次搜索之间的时差。 首先需要81.136秒,第二个需要6.45秒,尽管我们正在搜索同一目录。

2 个答案:

答案 0 :(得分:10)

这与Python无关。扫描的文件仍然在操作系统的文件系统缓存中,因此不需要像第一次运行那样多的磁盘访问...

您可以使用以下内容进行复制:

with open('a 100mb or so file') as fin:
    filedata = fin.read()

在第二次运行时,文件可能仍然在内存而不是磁盘,因此第二次运行速度会明显加快。

答案 1 :(得分:7)

现代系统通过使用缓存机制优化对最近访问的数据的访问。这可能就是你的情况。所以,它不是关于Python而是关于操作系统和存储。

以下是在我的机器上连续执行的基本查找操作(与Python无关)的结果。

time find /usr/ -name java
...
real    1m15.946s

time find /usr/ -name java
...
real    0m24.577s