Windows 8添加了PrefetchVirtualMemory
,这对于在使用内存映射文件读取大量顺序数据时避免硬页面错误有很大帮助。
Windows 8.1 / 10还添加了DiscardVirtualMemory
,这样可以避免读取将被覆盖的页面。但是,当在内存映射所拥有的内存地址上调用DiscardVirtualMemory
时,线程会挂起并且函数调用永远不会完成。
内存映射文件是否支持DiscardVirtualMemory
。如果是这样,是否需要做一些特殊的(即未记录的)以使其有效?