内存和文件加载c ++?

Ret*_*oid 0 c++ memory file loading

我编写了一个加载文件的程序,我想知道是否有人可以解释为什么第二次及以后加载文件的速度比同一文件的初始加载速度快?
例如:
1.首次加载大文件(500MB)时,需要比后续加载同一文件更长的时间.第二次加载文件时只需要一小部分时间.
即使RAM使用率介于两者之间也是如此(重新启动程序时也会出现此行为).

2.如果我重启我的电脑和/或不运行程序或在一段时间后重新加载文件,情况#1再次出现.

环境:

  • C++
  • VS 2010(MFC)
  • Windows XP Home 32位
  • 文件加载:我尝试了fread()和其他人,但他们都得到了类似的结果.

感谢您的任何见解.

Jac*_*ker 5

您的操作系统将文件缓存在未使用的内存中.见维基百科.这将在重新启动后消失,或者如果您使用大量内存,或者您打开了更多文件.详细信息因操作系统而异.

对于现代计算机体系结构的更广泛的概述,Herb Sutter的这次演讲很好.