我如何得到内存使用的特定应用程序,就像它显示在windows任务管理器

本文关键字:显示 任务管理器 windows 应用程序 何得 内存 | 更新日期: 2023-09-27 18:06:07

public static void getallmemoryusage(string processName)
{
    Process[] pprocessName = Process.GetProcessesByName(processName);//.GetCurrentProcess().ProcessName;
    var counter = new PerformanceCounter("Process", "Working Set - Private", processName);
    privateMemeory = string.Format("Private memory: {0}k", counter.NextValue() / 1024);
}

这里有一些问题:

  1. 我有一个变量Process[] pprocessName,但我从来没有使用过它

  2. 现在我在任务管理器中得到一个不相同的值。

在任务管理器中,我看到我的程序中有192.6MB,我看到197232。现在我开始玩游戏,使用应用程序(进程)现在在任务管理器中显示:219.0MB在我的程序224304.

为什么它现在是相同的值,我应该如何处理进程[]pprocessName变量?还有,我如何像在任务管理器中那样显示应用程序(进程)的百分比/s ?

我希望这个方法将返回相同的内存使用值和相同的百分比值,就像在任务管理器中。

我如何得到内存使用的特定应用程序,就像它显示在windows任务管理器

是。您可以通过Process类的WorkingSet64属性获得每个类占用的物理内存量。

MSDN说:

为关联对象分配的物理内存量,以字节为单位过程。

在您的例子中,pprocessName是名称为"processName"的进程数组。你可以输入:

foreach(var process in pprocessName)
{
  var memoryBytes = process.WorkingSet64;
  //...
}
相关文章: