进程内存使用情况包括(可以称为VirtualMemory):
以下是我的理解:
Virtual Memory = PrivateMemmory + SharedMemory + CommitedMemory + ReservedMemory;
WorkSet Memory = PrivateMemmory + SharedMemory + CommitedMemory;
Free Memory = 'Virtual Memory' - 'WorkSet Memory';我计算用c#编写的进程(不包括保留的)的总使用内存。左边是VMMap,右边是VS监视器。
在VMMap中,进程总内存大小约为5GB,预留内存约为4GB,VS监视器显示VirtualMemorySize64约为5GB,我不知道如何才能获得总使用内存。在VMMap中有4GB的预留内存,如何使用.net进程类获得预留内存。
我用下面的代码设置了TotalUsageMemory值,对吗?
Int64 TotalUsageMemory = proc.WorkingSet64 + proc.PagedMemorySize64;

发布于 2018-11-02 08:21:47
数字不是那样加起来的。页是否在工作集中独立于是否共享。这也是(我相信)独立于它是否被实施。
正确的计数器取决于你想要回答的问题。不幸的是,没有任何计数器完全符合直观的内存使用概念。私有字节通常是用来做这个的。工作装置在实践中意义不大。由于操作系统的操作,此计数器可以在任何时候更改。从性能的角度来看,虚拟内存也是完全不相关的。
通常,内存使用是通过启动该进程而逐渐消耗的内存。那是私人字节。
没有计数器或计算为您提供一个TotalUsageMemory值。
https://stackoverflow.com/questions/53060644
复制相似问题