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中。
为什么它现在具有相同的值,我应该如何处理Process [] pprocessName变量? 另外,我如何显示应用程序(进程)的百分比/ s,就像在任务管理器中显示它一样?
我希望此方法将返回相同的内存使用值和相同的百分比值,就像在任务管理器中一样。
答案 0 :(得分:0)
是。您可以通过WorkingSet64
类的Process
属性获取每个占用的实际内存量。
为关联分配的物理内存量(以字节为单位) 过程
在您的情况下,pprocessName
是名为“processName”的进程数组
所以你可以这样做:
foreach(var process in pprocessName)
{
var memoryBytes = process.WorkingSet64;
//...
}