.net - 为什么是 Process.WorkingSet > Process.MaxWorkingSet?

标签 .net process working-set

无聊的好奇...

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

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/

相关文章:

c# - 转换控制台应用程序部署的配置

python - 有没有办法确定 Linux PID 是否暂停?

javascript - 如何在系统即将进入休眠状态时获取事件

java - 使用字符串选择 Eclipse 工作集

c# - Xpath 选择所有不带 id=x 表的 tr

.Net Web 引用 SSL 错误

java - 有没有办法访问 "Others Workingset"或其工作集管理器?

Eclipse 工作集——如何重命名它们?另外,可以禁用错误图标吗?

c# - 在 .NET 控件中部署非托管依赖 dll

linux - 进程间通信 (IPC) 的正确实现