获取实际进程 RAM 使用情况
Get real process RAM usage
我一直在研究如何通过 id 获取进程 RAM 使用情况,但所有结果都会导致使用 WorkingSet64 变量,returns 这是一个不正确的值。我已经比较了 WorkingSet64 和任务管理器中的值,它们不相等。
我想知道如何获得真实和正确的进程 RAM 使用情况,就像 Windows' 任务管理器一样。
你能帮帮我吗?提前致谢。
在 windows 8.1 中,任务管理器中的默认内存列是 Private 工作集。
请参阅此 question 了解如何获取此类值。
根据参考问题的答案总结:
使用 PerformanceCounter class 从 "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;
我一直在研究如何通过 id 获取进程 RAM 使用情况,但所有结果都会导致使用 WorkingSet64 变量,returns 这是一个不正确的值。我已经比较了 WorkingSet64 和任务管理器中的值,它们不相等。
我想知道如何获得真实和正确的进程 RAM 使用情况,就像 Windows' 任务管理器一样。
你能帮帮我吗?提前致谢。
在 windows 8.1 中,任务管理器中的默认内存列是 Private 工作集。
请参阅此 question 了解如何获取此类值。
根据参考问题的答案总结:
使用 PerformanceCounter class 从 "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;