Environment.WorkingSet错误地报告在
Windows 2003 Server上运行的网站的内存使用情况.(OS Vers:Microsoft Windows NT 5.2.3790 Service Pack 2,.NET Vers:2.0.50727.3607)
它将内存报告为工作集(物理内存):1952 MB(2047468061).
相同的网站在Windows Vista上本地运行,具有工作集(物理内存):49 MB(51924992).
我对服务器的访问权限有限且支持非常有限:(.
所以我通过遍历VirtualQuery来计算总内存.
状态:MEM_FREE的页面总数为1300 MB.
(我猜服务器有4 GB的RAM,未启用PAE,最大用户模式虚拟地址为0x7fff0000.)
所以,我知道工作集不仅仅是关于虚拟内存.但是,拥有如此高的工作集是否正常,而另一台机器上的工作量却很低?
最佳答案 猜测,Environment.WorkingSet可能从GetProcessWorkingSetSize返回值,这基本上是使用SetProcessWorkingSetSize设置的.它基本上是系统选择的最大工作集大小,它希望在这个过程中看到它,而不一定与它实际使用的内存量有关.基本的影响是,当进程使用的内存多于此时,系统的工作集修剪器会工作,看它是否可以将其部分内存分页到磁盘.