1

我想循环加载大量 MAT 文件。我正在测试使文件加载更快的不同方法,并且我正在使用 10,000 个文件的子集,每个文件包含大约 50 个不同大小的变量。我注意到一个有趣的细节:

  1. 如果我一个接一个地循环加载10,000个文件load(filename),大约需要5分钟。
  2. 如果我多次加载同一组文件(基本上重复测试),时间不会改变。
  3. 如果我使用 仅从每个文件中加载一个变量load(filename, 'varname'),则需要大约相同的时间。
  4. 如果我重复第 3 步,完成加载大约需要15 秒。相同的文件,相同的变量被加载。
  5. 如果我现在运行第 1 步并再次重复第 3 步,我将返回大约 5 分钟的负载。但是一旦我尝试进行第二次加载,再次需要很短的时间。

我很困惑。一旦从文件中加载数据一次,Matlab 是否会以某种方式将数据保存在内存中?然而,这种现象在 Matlab 重启和clear命令中仍然存在,那么实际上是 Windows 7 保留了一些数据的内存缓存吗?

不用说,我想确定是什么导致了意想不到的改进,如果可能的话,重现它以使第一次加载与后续加载一样快。

4

0 回答 0