Python程序第一次执行的时间太长?

Python程序第一次执行的时间太长?,python,pandas,performance,numpy,Python,Pandas,Performance,Numpy,我有一个python脚本,它基本上获取每分钟的电力负荷数据、太阳能生产数据,并进行一些能量流分析。这是一个相当复杂的算法,涉及很多循环和巨大的数据帧、矩阵和数组。当我在脚本上工作一段时间时,平均需要35秒才能执行。我机器的所有风扇都开始吹了 但假设我离开电脑3-4小时后回来,同样的代码需要120多秒才能执行 为什么会这样?我有没有办法避免这种情况 任何帮助都将不胜感激。发生这种情况是因为缓存。 当您第一次从同一位置加载数据时,数据会存储在一个更容易访问的位置(缓存),因为您相信不久将再次使用该数

我有一个python脚本,它基本上获取每分钟的电力负荷数据、太阳能生产数据,并进行一些能量流分析。这是一个相当复杂的算法,涉及很多循环和巨大的数据帧、矩阵和数组。当我在脚本上工作一段时间时,平均需要35秒才能执行。我机器的所有风扇都开始吹了

但假设我离开电脑3-4小时后回来,同样的代码需要120多秒才能执行

为什么会这样?我有没有办法避免这种情况


任何帮助都将不胜感激。

发生这种情况是因为缓存。 当您第一次从同一位置加载数据时,数据会存储在一个更容易访问的位置(缓存),因为您相信不久将再次使用该数据。 当您离开计算机时,该空间将充满其他进程使用的其他数据。 这是计算机如何构建的基本部分,各种优化芯片设计人员为了使计算机(CPU)更快而添加这些芯片。 这种现象也称为“冷运行”

编辑:
加载数据包括将实际代码段(堆、堆栈等)加载到内存中

感谢您提供的信息性答案。有没有办法让我第一次“热运行”我的代码?因为它需要2-3个小时才能恢复到原来的速度。我不想等那么久,真的没有速效药。如果您在每次运行时都打开了一个文件,那么在脚本之前打开它可能会有所帮助。您首先需要理解缓存背后的概念,它会根据您的使用情况加载数据并存储数据,因此没有一个快速的技巧可以克服这一点—可以优化脚本本身。例如,如果脚本当前重复加载相同的文件,则在文件系统用该内容加热缓存后,脚本会加速,但是,通过让脚本只将文件加载到内存中一次,可以完全避免FS缓存的需要。正如@Samwise所说,您可能能够优化脚本的某些方面,但无法将“冷运行”带到与未来运行相同的启动条件。对于您的评论,UNFUURELythanks@Samwise一开始需要付出一点“代价”。这是一个非常有趣的现象。是否有办法以相同的速度启动程序,或者在开始时使用热缓存?