例如,在 UNIX 上,我可以告诉操作系统将来需要使用posix_fadvise(POSIX_FADV_WILLNEED)
. 如果感觉如此,它将预读数据。
如何判断对 Windows 的访问意图?
例如,在 UNIX 上,我可以告诉操作系统将来需要使用posix_fadvise(POSIX_FADV_WILLNEED)
. 如果感觉如此,它将预读数据。
如何判断对 Windows 的访问意图?
从 Windows 8 开始,就有了PrefetchVirtualMemory
用于此目的的功能。
实际上,正如 Anders 所建议的那样,在 Windows 7 及更早版本中可用的内存管理功能中没有这种方法。
有两种不同的方法来做类似的事情:
FILE_FLAG_SEQUENTIAL_SCAN
属性的流式提示打开文件。然后可能会自动完成预读。您可以传递FILE_FLAG_RANDOM_ACCESS
或传递FILE_FLAG_SEQUENTIAL_SCAN
给 CreateFile()