PF使用率与物理内存有关吗

来源:百度知道 编辑:UC知道 时间:2024/07/01 03:25:02
我物理内存512M,开机后PF使用率320M/1249M,请问这个数值是什么意思?如果我物理内存加到1G的话,开机后PF使用率大概是多少?

在保护模式下,Win32 程序可以寻址 2GB 或 3GB 虚拟内存,对每一个进程来说,它寻址的范围都是这么多。OS 负责把进程提交的虚拟内存按页(一页 4KB,工作集)映射到物理内存的实际页帧上(驻留集)。如果设置了硬盘上的交换文件(Pagefile.sys),那么 OS 也会在物理内存和交换文件之间交换内存页,不活动的进程,它的虚拟内存页会被从物理内存中交换到硬盘上,等它活动的时候再交换回来(分页)。所以,如果设置了硬盘上的交换文件,而物理内存不足(映射所有的虚拟内存页)的时候,电脑就会频繁将物理内存里的页和硬盘进行交换。如果没有设置硬盘上的交换文件,物理内存不足(映射所有的虚拟内存页)的时候电脑就会告诉你“虚拟内存不足了”。

如果设置了硬盘上的交换文件,Windows 总是会将不太活动的进程的内存页交换到那里去。对于一个进程来说,它在物理内存中映射的驻留集少于它想要的工作集,就会引发分页而降低效率。对于物理内存相当大的电脑,除非需要执行会检查硬盘上的交换文件的程序,否则可以取消硬盘上的交换文件。比如早期的 PhotoShop,那个时候的电脑,内存比较小,所以会强制要求启用硬盘上的交换文件。新版本的 PhotoShop 没有这个强制检查,你可以分配几十 GB 物理内存给它用(x64 的版本)。

虚拟内存的使用总量是所有工作集的综合,因此它包括了分页到硬盘的部分,如果有的话。值得注意的是,共享的 DLL 只使用自己一部分工作集,虽然几个进程使用了它,但由于 Windows 允许进程间共享页帧,所以用任务管理器查看内存使用的时候,要注意这个方面的区别。而且,任务管理器查看内存使用显示的是已经提交的虚拟内存,如果进程没有提交,是不会告诉你的。