好奇心...

我正在查看当前流程的一些属性:

using(Process p = Process.GetCurrentProcess())
{
    // Inspect properties
    // p.MaxWorkingSet = 1,413,120
    // p.MinWorkingSet = 204,800
    // p.WorkingSet = 54,140,928
    // p.WorkingSet64 = 54,140,928
}

通过阅读文档,这些属性都与工作集大小(以字节为单位)相关,因此我期望看到:
MinWorkingSet <= WorkingSet <= MaxWorkingSet

事实并非如此,任何人都可以解释原因吗?

最佳答案

MaxWorkingSet和MinWorkingSet是Win32 API GetProcessWorkingSetSize返回的值。这些是虚拟管理器使用的限制,将在内存不足时强制执行这些限制。只要有足够的内存可用,当前的工作集大小就可以增大到大于MaxWorkingSet中的值。

关于.net - 为什么选择Process.WorkingSet> Process.MaxWorkingSet?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7387055/

10-12 01:37