我正在尝试读取类别“.NET CLR Exceptions”的perfmon计数器。下面是相同的代码。我所看到的看起来就像我构建的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));
}
如果有人能指出我正确的方向,我会很感激,以防我在这里做错了。
答案 0 :(得分:1)
请注意,差异在于派生的“每秒”值。这些类型的计数器有点违反直觉。操作系统不会保留标准的瞬时值以供您获取。在消耗计数器的应用程序中完成跟踪已用时间和执行除法。例如,如果您在调用之间以5秒的延迟查询计数器,则应用程序会将计数器原始值的差异除以5.现在,您的应用程序将不会使用完全相同的延迟,甚至可能捕获任何样本同时。因此,您的价值观将会略有差异或大不相同。