我如何得到内存使用的特定应用程序,就像它显示在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);
}
这里有一些问题:
我有一个变量Process[] pprocessName,但我从来没有使用过它
现在我在任务管理器中得到一个不相同的值。
在任务管理器中,我看到我的程序中有192.6MB,我看到197232。现在我开始玩游戏,使用应用程序(进程)现在在任务管理器中显示:219.0MB在我的程序224304.
为什么它现在是相同的值,我应该如何处理进程[]pprocessName变量?还有,我如何像在任务管理器中那样显示应用程序(进程)的百分比/s ?
我希望这个方法将返回相同的内存使用值和相同的百分比值,就像在任务管理器中。
是。您可以通过Process
类的WorkingSet64
属性获得每个类占用的物理内存量。
MSDN说:
为关联对象分配的物理内存量,以字节为单位过程。
在您的例子中,pprocessName
是名称为"processName"的进程数组。你可以输入:
foreach(var process in pprocessName)
{
var memoryBytes = process.WorkingSet64;
//...
}