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

Pra*_*hal 7 python performance

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

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

Jon*_*nts 10

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

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

with open('a 100mb or so file') as fin:
    filedata = fin.read()
Run Code Online (Sandbox Code Playgroud)

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

  • @GamesBrainiac错误...当然,使用`pyc`文件的Python有一个加速,但它并没有显示的规模.它只是缓存在操作系统级别发生的...... (5认同)
  • 所以它的_not_是`.pyc`文件? (3认同)

Ese*_*gün 7

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

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

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

time find /usr/ -name java
...
real    0m24.577s
Run Code Online (Sandbox Code Playgroud)