使用Process获取的信息如下:已经除以1024
NonpagedSystemMemorySize64=52.015625
PagedMemorySize64=50764
PagedSystemMemorySize64=784.6328125
PeakPagedMemorySize64=51084
PeakVirtualMemorySize64=38650184
PeakWorkingSet64=66804
PrivateMemorySize64=50764
VirtualMemorySize64=38645832
WorkingSet64=66484NonpagedSystemMemorySize64=52.015625
PagedMemorySize64=50764
PagedSystemMemorySize64=784.6328125
PeakPagedMemorySize64=51084
PeakVirtualMemorySize64=38650184
PeakWorkingSet64=66804
PrivateMemorySize64=50764
VirtualMemorySize64=38645832
WorkingSet64=66484NonpagedSystemMemorySize64=52.015625
PagedMemorySize64=50764
PagedSystemMemorySize64=784.6328125
PeakPagedMemorySize64=51084
PeakVirtualMemorySize64=38650184
PeakWorkingSet64=66804
PrivateMemorySize64=50764
VirtualMemorySize64=38645832
WorkingSet64=66484
使用PrivateMemorySize64获取的结果明显偏大,其余的属性获取的数值也不合适?这是为什么?
/// <summary>
/// 获取指定进程占用内存
/// </summary>
/// <param name="Name">进程名称</param>
/// <returns></returns>
public static int GetMemory(string Name)
{
int memory = 0;
Process[] myPS = System.Diagnostics.Process.GetProcessesByName(Name);
if (myPS.Length > 0)
{
Process input = myPS[0];
memory = (int)(input.WorkingSet64 >> 10);
}
return memory;
}
和这个结果对一下呢