我需要在C#中获取进程的“提交大小”(Windows任务管理器>详细信息)。
乍一看Process
课程没有提供相关属性。
有人可以帮帮我吗?
被修改
private static void ShowCommitSize(string processName)
{
Process process = Process.GetProcessesByName(processName).FirstOrDefault();
if (process != null)
{
var pagedMemMb = ConvertBytesToMegabytes(process.PagedMemorySize64);
Console.WriteLine(process.ProcessName + "\t" + process.Id + "\t" + Math.Round(pagedMemMb, 3) + " MB");
}
Console.ReadLine();
}
static double ConvertBytesToMegabytes(long bytes)
{
return (bytes / 1024f) / 1024f;
}
输出
我计算的提交大小与任务管理器中的“提交大小”之间存在差异。有什么想法吗?
解决方案
private static void ShowCommitSize(string processName)
{
var process = Process.GetProcessesByName(processName).FirstOrDefault();
if (process != null)
{
var memKb = ConvertBytesToKilobytes(process.PagedMemorySize64);
Console.WriteLine(process.ProcessName + "\t" + process.Id + "\t" + memKb.ToString("N") + " K");
}
Console.ReadLine();
}
static double ConvertBytesToKilobytes(long bytes)
{
return (bytes / 1024f);
}
答案 0 :(得分:2)
此值位于PagedMemorySize64属性中。文档提到这个“页面文件大小”进程性能计数器和here记录了这在Vista / 2008上的任务管理器中被称为“提交大小”(我假设更新的操作系统)。