PrivateMemorySize64获取的内存和任务管理器差距为什么比较大?

rehuo 2018-09-27 04:04:22

使用Process获取的信息如下:已经除以1024
NonpagedSystemMemorySize64=52.015625
PagedMemorySize64=50764
PagedSystemMemorySize64=784.6328125
PeakPagedMemorySize64=51084
PeakVirtualMemorySize64=38650184
PeakWorkingSet64=66804
PrivateMemorySize64=50764
VirtualMemorySize64=38645832
WorkingSet64=66484

NonpagedSystemMemorySize64=52.015625
PagedMemorySize64=50764
PagedSystemMemorySize64=784.6328125
PeakPagedMemorySize64=51084
PeakVirtualMemorySize64=38650184
PeakWorkingSet64=66804
PrivateMemorySize64=50764
VirtualMemorySize64=38645832
WorkingSet64=66484

NonpagedSystemMemorySize64=52.015625
PagedMemorySize64=50764
PagedSystemMemorySize64=784.6328125
PeakPagedMemorySize64=51084
PeakVirtualMemorySize64=38650184
PeakWorkingSet64=66804
PrivateMemorySize64=50764
VirtualMemorySize64=38645832
WorkingSet64=66484
使用PrivateMemorySize64获取的结果明显偏大,其余的属性获取的数值也不合适?这是为什么?
...全文
992 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
rehuo 2018-10-22
  • 打赏
  • 举报
回复
没人回答吗?
rehuo 2018-09-29
  • 打赏
  • 举报
回复
在windows任务管理器里面查看详细信息,可以看到“工作集(内存)”里面的内容和WorkingSet64的取值是一致的,但是“内存(专用工作集)”就是找不到合适的对应关系,Process里面和内存相关的属性 我都取出来了
xian_wwq 2018-09-29
  • 打赏
  • 举报
回复

/// <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;
}


和这个结果对一下呢
rehuo 2018-09-29
  • 打赏
  • 举报
回复
没人回答吗?

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧