我正在寻找一种方法来确定进程实际使用的内存(而不仅仅是分配的内存)。
查看 procmon.exe 或 vmmap.exe,相关值是:
私有字节
所有内存均已分配。
工作集
物理 RAM 中的已用内存。
假设private bytes = 3 GB
。working set = 200 MB
在最好的情况下,该进程仅使用 200 MB,其余部分只是分配而未使用。在最坏的情况下,它使用所有 3 GB,并将 2.8 GB 交换到页面文件。
(我读了问题我的 Windows 应用程序实际使用了多少内存?和什么是私有字节、虚拟字节、工作集但他们没有回答我的问题。)
有什么方法可以找到进程真正使用的内存吗?
编辑:
对我来说,已用内存是已填充的分配内存量。
当分配 3 GB 时,“什么也没有”发生。内存仅为进程保留。专用字节增加,但工作集保持不变。填充分配的 200 MB 内存后,它会显示在工作集上。
我所寻找的是这 200 MB 的已使用/已填充内存,无论其是否完全在工作集上或已被换出。