在 Windows 7 和 Windows 2008 R2 中,有一个新的资源监视器,它对于监视系统非常有用且功能强大。
在“内存”部分,我看到一个名为“修改”的部分(橙色)
官方的描述是:必须先将其内容写入磁盘才能用于其他用途的内存。
但我仍然感到困惑。哪些类型的内存被修改了?在什么情况下我们可以说这个数量的内存被修改了?有人能给我一个具体的例子吗?
以下猜测正确吗?
当程序要将某些内容写入磁盘时,它实际上将内容写入内存中的 IO 缓冲区。当 OS 将这部分内存刷新到磁盘后,内存是被修改了还是处于待机状态?
答案1
已修改内存是指已分配、由应用程序修改然后从应用程序的工作集中删除的内存。(删除通常是因为长时间未使用。)由于已修改,因此不能简单地将其释放用于其他用途;必须将其内容写回到其“后备存储”。私有已提交内存的后备存储是页面文件;对于映射内存,它是内存最初映射到的文件。
页面通常只会在已修改列表中停留很短的时间,然后才会被写入备份存储。然后它们会被移至备用列表。备用页面被视为“可用内存”的一部分,因为如果需要,它们可以重新用于其他用途。
页面无限期停留在已修改列表中的常见原因是系统没有剩余的可用页面文件空间。如果增加页面文件的大小,系统会将大部分页面写入磁盘,然后将其从已修改列表移至备用列表。