2

我正在尝试读取“.NET CLR 异常”类别的性能计数器。下面是相同的代码。我看到的是在我构建的 Windows Perfmon 计数器和控制台应用程序中显示的不同数据。

PerformanceCounterCategory netClrExceptionCat = new PerformanceCounterCategory(".NET CLR Exceptions");
foreach (PerformanceCounter counter in netClrExceptionCat.GetCounters("_Global_"))
{
    Console.WriteLine(string.Format("  Counter: {0} : Value : {1}", counter.CounterName, counter.RawValue));
}

在此处输入图像描述

如果有人能指出正确的方向,我将不胜感激,以防我在这里做错了什么。

4

1 回答 1

1

请注意,差异在于派生的“每秒”值。这些类型的计数器有点违反直觉。操作系统不保留标准瞬时值供您获取。跟踪经过的时间并执行除法是在使用计数器的应用程序中完成的。例如,如果您在两次调用之间以 5 秒的延迟查询计数器,您的应用程序会将计数器原始值的差除以 5。现在,您的应用程序将不会使用完全相同的延迟,甚至可能不会捕获任何样本同时。因此,您的价值观会略有不同或有很大不同。

于 2011-12-24T15:53:50.573 回答