我一直在研究如何通过id获取进程RAM的使用,但所有结果都导致使用WorkingSet64变量,该变量返回不正确的值。我已经比较了WorkingSet64值和任务管理器中的值,它们不相等。
我想知道如何获得真正正确的进程RAM使用情况,就像Windows'任务经理的一个。
你能救我吗?提前谢谢。答案 0 :(得分:3)
在Windows 8.1中,任务管理器中的默认内存列是专用工作集。
请参阅此question以了解如何获取此类值。
总结参考问题的答案:
使用PerformanceCounter课程获取"工作集 - 私人"来自"流程"类别。
示例:
127.0.0.1
其中prcName是进程的名称。例如,要获取当前进程的名称,请使用以下命令:
var counter = new PerformanceCounter("Process", "Working Set - Private", prcName);
如果要获取给定其ID的进程的名称,请使用以下命令:
string prcName = Process.GetCurrentProcess().ProcessName;