c# 获取某进程占用的内存(任务管理器显示的内存一致)

时间:2021-05-20 01:33:19

最近写了看门狗的winform程序,需求要求显示监测的进程所占的内存大小

找了好几个方法,都和任务管理器显示的内存不一致

最后找到了一个解决方法

PerformanceCounter pf1 = new PerformanceCounter("Process", "Working Set - Private", process.ProcessName);//第二个参数就是得到只有工作集
string text = $"该进程所占内存为:{ pf1.NextValue() / 1024}KB";

不过用PerformanceCounter的话会导致程序的CPU占用过高,具体可见下面的参考文章

参考文章:https://q.cnblogs.com/q/74255/

     http://www.cnblogs.com/maowang1991/archive/2013/08/27/3285983.html