如何获取进程的内存使用量?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (31)

我一直在弄清楚我是如何准确地得到进程的ram使用情况的。(它目前消耗多少内存,而不是保留多少,或者它的最大或最小)

假设我有一个进程运行在后台,Java.exe,它允许使用1024 mb的ram,我如何知道它目前正在使用多少ram。

我自己开始这个过程,所以我可以访问Process对象,我只想更清楚地说明什么是我的属性。

提问于
用户回答回答于

如果你纯粹对物理内存感兴趣,那么你可能需要WorkingSet64,它给出“分配给相关进程的物理内存量”。你也可能对PeakWorkingSet64感兴趣,它提供了“关联进程使用的最大物理内存量”。

用户回答回答于

我在MSDN上发现了这个,它正在工作。

System.Diagnostics.Process proc = assign your process here :-)

int memsize = 0; // memsize in Megabyte
PerformanceCounter PC = new PerformanceCounter();
PC.CategoryName = "Process";
PC.CounterName = "Working Set - Private";
PC.InstanceName = proc.ProcessName;
memsize = Convert.ToInt32(PC.NextValue()) / (int)(1024);
PC.Close();
PC.Dispose();

扫码关注云+社区