12

例如,在 UNIX 上,我可以告诉操作系统将来需要使用posix_fadvise(POSIX_FADV_WILLNEED). 如果感觉如此,它将预读数据。

如何判断对 Windows 的访问意图?

4

3 回答 3

11

从 Windows 8 开始,就有了PrefetchVirtualMemory用于此目的的功能。

于 2013-09-19T17:49:44.033 回答
10

实际上,正如 Anders 所建议的那样,在 Windows 7 及更早版本中可用的内存管理功能中没有这种方法

有两种不同的方法来做类似的事情:

  • 使用ReadFileEx异步读取数据。以后需要时,数据可能仍然在文件缓存中。
  • 使用带有CreateFileFILE_FLAG_SEQUENTIAL_SCAN属性的流式提示打开文件。然后可能会自动完成预读。
于 2009-12-08T17:19:16.023 回答
5

您可以传递FILE_FLAG_RANDOM_ACCESS或传递FILE_FLAG_SEQUENTIAL_SCAN给 CreateFile()

于 2009-07-29T16:58:44.297 回答