在任务管理器 C# 中提交进程的大小
Posted
技术标签:
【中文标题】在任务管理器 C# 中提交进程的大小【英文标题】:Commit size of a process in Task Manager C# 【发布时间】:2017-10-19 06:06:13 【问题描述】:我需要在 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);
【问题讨论】:
Available pagefile size / virtual memory的可能重复 【参考方案1】:此值在 PagedMemorySize64 属性中。该文档提到这是“页面文件大小”进程性能计数器,并且在here 上记录了这在 Vista/2008 上的任务管理器中被称为“提交大小”(我假设是较新的操作系统)。
【讨论】:
谢谢!我编辑了我的问题,并使用了 PagedMemorySize64 属性。计算出的 Commit Size 与在任务管理器中看到的值之间仍然存在差异。有什么想法吗? @BertAR 你问的是哪一部分差异? 124552 KB = 121.6 Mb。您是在询问 0.6 Mb 还是错误地将 kB 与 Mb 进行比较?屏幕截图之间的值是否发生了变化? 感谢您的快速回复!的确,我的转变是错误的。祝你有美好的一天。 @BertAR 我现在正在调查这个。你的转换有什么问题?我想我知道问题出在哪里,但我想先确定一下,然后再将其添加到答案中。以上是关于在任务管理器 C# 中提交进程的大小的主要内容,如果未能解决你的问题,请参考以下文章
C#:如何在我的 PC 上列出与任务管理器相同的工作进程(不像应用程序选项卡)