在任务管理器 C# 中提交进程的大小
Commit size of a process in Task Manager C#
我需要在 C# 中获取进程的 'Commit size'(Windows 任务管理器 > 详细信息)。
乍一看Process
class并没有提供相关的属性。
有人可以帮我吗?
已编辑
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"(我假设是较新的操作系统)。
我需要在 C# 中获取进程的 'Commit size'(Windows 任务管理器 > 详细信息)。
乍一看Process
class并没有提供相关的属性。
有人可以帮我吗?
已编辑
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"(我假设是较新的操作系统)。