任何看过 Mark Russovich 演讲“揭开内存管理之谜”的人都知道,vmmap 工具可以向您展示一些其他工具似乎不知道的与您的进程限制(香草 32 位窗口上为 2GB)有关的东西。
我希望能够以编程方式监控我的的实际总内存大小(与进程限制密切相关的内存大小),这样我至少可以记录接近进程限制时发生的情况。是否有任何关于 vmmap 如何做到这一点的公开信息?
...另外,为什么这些信息如此难以获得?
我所知道的事情(AFAIK)并没有给你完整的画面:
- ::GetProcessMemoryInfo 看起来它只返回有关私有内存使用情况的信息
- System.Diagnostics.Process.VirtualMemorySize64 返回一个相当大的数字,但仍然与 vmmap 显示的总数不完全匹配——实际上它与 vmmap 中显示的任何内容都不匹配 :(