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

如何判断访问意图是Windows?

有帮助吗?

解决方案

事实上,正如安德斯大多建议的那样, Windows 7及更早版本的内存管理功能中没有这种方法.

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

  • 异步读取数据 读取文件Ex. 。稍后需要时,数据可能仍位于文件缓存中。
  • 使用流提示打开文件 FILE_FLAG_SEQUENTIAL_SCAN 的属性 创建文件. 。预读也许会自动完成。

其他提示

从Windows 8开始,有 PrefetchVirtualMemory 用于此目的。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top