【问题标题】:Obtaining the value of another process' CLR Memory Performance Counter获取另一个进程的 CLR 内存性能计数器的值
【发布时间】:2026-02-13 08:00:01
【问题描述】:

我有一些 C# 代码可以启动另一个进程。现在我希望能够获得该进程的 Gen2 堆大小的 CLR 内存性能计数器的值。

任何人都可以让我开始或指导我到一个使这变得容易的图书馆吗?

【问题讨论】:

    标签: c# performance performancecounter


    【解决方案1】:

    使用 PerformanceCounter 类。像这样:

    using System;
    using System.Diagnostics;
    
    class Program {
        static void Main(string[] args) {
            var process = "devenv";   // Modify this
            var ctr = new PerformanceCounter(".NET CLR Memory", "Gen 2 heap size", process);
            Console.WriteLine(ctr.RawValue);
            Console.ReadLine();
        }
    }
    

    【讨论】:

      【解决方案2】:

      您需要构建一个代码分析器,从这里开始阅读:http://msdn.microsoft.com/en-us/library/s5ec0es1.aspx

      【讨论】: