标签: windows memory-mapped-files
我在Windows中创建了一个基于文件的MMF。然后我做了一个2gb视图,检查了通过读取中间某处的4个字节来访问数据的速度。它几乎是瞬间的,所以显然它不会在几毫秒内使整个2gb变红。
这让我很好奇,它是如何运作的?
答案 0 :(得分:1)
映射视图时,会在虚拟地址空间和磁盘上的页面之间创建映射。尚未读取任何数据。
只有当您尝试访问某些数据时,映射到该内存地址的页面才会被读入缓存(生成页面故障会强制操作系统读取内存中的映射页面)。
所以,回答你的观点: