是否有一个C#进程类';属性是否等于任务管理器内存列?
我知道进程类有许多与内存相关的属性,比如(私有)工作集(64)、私有内存单元(64)等等,。。。我试图得到它们的值并除以(1024*1024)得到它们的MB数。它们似乎都没有任务管理器内存列那样的值。是否有具有TM值的属性?否,进程上没有可用于获取任务管理器专用工作集的属性,但… 您可以从以下位置从性能计数器检索相同的值: 因为您可能不知道过程中可用的值并不代表相同的东西。私有工作集仅与由私有内存系统64测量的内存子集相关。看看答案 事实上,这真的取决于你想要实现什么是否有一个C#进程类';属性是否等于任务管理器内存列?,c#,memory,process,taskmanager,C#,Memory,Process,Taskmanager,我知道进程类有许多与内存相关的属性,比如(私有)工作集(64)、私有内存单元(64)等等,。。。我试图得到它们的值并除以(1024*1024)得到它们的MB数。它们似乎都没有任务管理器内存列那样的值。是否有具有TM值的属性?否,进程上没有可用于获取任务管理器专用工作集的属性,但… 您可以从以下位置从性能计数器检索相同的值: 因为您可能不知道过程中可用的值并不代表相同的东西。私有工作集仅与由私有内存系统64测量的内存子集相关。看看答案 事实上,这真的取决于你想要实现什么 如果希望与任务管理器中的
- 如果希望与任务管理器中的值相同,请阅读性能计数器
- 如果要测量应用程序使用的内存,应该使用进程属性。例如,如果希望知道无法与其他进程共享的内存,请使用
using System;
using System.Diagnostics;
class Program {
static void Main(string[] args) {
string prcName = Process.GetCurrentProcess().ProcessName;
var counter = new PerformanceCounter("Process", "Working Set - Private", prcName);
Console.WriteLine("{0}K", counter.RawValue / 1024);
Console.ReadLine();
}
}