在任务管理器 C# 中提交进程的大小

Commit size of a process in Task Manager C#

我需要在 C# 中获取进程的 'Commit size'(Windows 任务管理器 > 详细信息)。

乍一看Processclass并没有提供相关的属性。 有人可以帮我吗?

已编辑

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

输出

我计算的提交大小与任务管理器中的 'Commit Size' 不同。有什么想法吗?

解决方案

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

此值在 PagedMemorySize64 property. The documentation mentions that this the "Page File Size" process performance counter and over here 中,据记载在 Vista/2008 的任务管理器中将其称为 "Commit Size"(我假设是较新的操作系统)。