.NET(C#):获取进程的内存私有工作集
当前.NET Framework(.NET 4.0)的Process仅提供进程的内存工作集的获取(通过WorkingSet64属性),而没有提供对私有工作集的获取。注意在Windows Vista之后,Windows任务管理器的进程内存一项默认是显示进程的私有工作集的,因此这一性能数据还是很重要的。
通过性能计数器Process类的WorkingSet – Private可以获取进程的私有工作集。当然通过WorkingSet属性也可以获取工作集。另外Process类和性能计数器都有Peak WorkingSet可以获取工作集的高峰值。
比如,通过Process.WorkingSet64和性能计数器的WorkingSet和WorkingSet Private来监控一个程序(以任务管理器taskmgr做示例)的内存工作集。
var processName = "taskmgr";
using (var process = Process.GetProcessesByName(processName)[0])
using (var p1 = new PerformanceCounter("Process", "Working Set - Private", processName))
using (var p2 = new PerformanceCounter("Process", "Working Set", processName))
{
while (true)
{
//注意除以CPU数量
Console.WriteLine("{0}{1:N} KB", "工作集(进程类)", process.WorkingSet64 / 1024);
Console.WriteLine("{0}{1:N} KB", "工作集 ", process.WorkingSet64 / 1024);
Console.WriteLine("{0}{1:N} KB", "私有工作集 ", p1.NextValue() / 1024);
Thread.Sleep(1000);
}
}
输出:
工作集(进程类)9,024.00 KB
工作集 9,024.00 KB
私有工作集 2,028.00 KB
工作集(进程类)9,024.00 KB
工作集 9,024.00 KB
私有工作集 2,028.00 KB
……
来源:http://www.cnblogs.com/mgen/archive/2011/11/18/2254225.html
- .NET(C#):获取进程的内存私有工作集
- .NET(C#):获取进程的CPU使用状况
- C#获取CPU占用率、内存占用、磁盘占用、进程信息
- .NET(C#):获取进程的CPU使用状况
- C#获取CPU占用率、内存占用、磁盘占用、进程信息
- Go1.9获取Windows进程专用内存工作集
- C#获取CPU占用率、内存占用、磁盘占用、进程信息
- 【.Net码农】C#反射获取 所有字段 及 私有字段
- C#获取CPU占用率、内存占用、磁盘占用、进程信息
- C#获取特定进程CPU和内存使用率
- C#实现进程内存信息获取
- 详解C#获取特定进程CPU和内存使用率
- C#获取特定进程CPU和内存使用率
- C#获取CPU占用率、内存占用、磁盘占用、进程信息
- C#获取CPU占用率、内存占用、磁盘占用、进程信息
- C#获取CPU占用率、内存占用、磁盘占用、进程信息
- Excel c#Excel工作进程的创建写 与Excel文件的保存[原创] (2010-02-05 11:09)
- .NET 获取项目的工作目录和执行目录
- 通过WMI获取系统.进程.CPU.磁盘.分区.网卡.主板.内存.显卡.共享.键盘.鼠标等信息
- Netweaver工作进程的内存限制 VS CloudFoundry应用的内存限制