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