我有一种图书馆,它使用一堆自己的性能计数器。但即使没有安装性能计数器,我也希望我的库能够正常工作。
所以我在 PerformanceCounter 周围创建了包装器,并在第一次使用时检查 PerfCounter 是否存在。如果它们存在,那么我将使用本机 PerformanceCounter,而不是使用不执行任何操作的包装器。
所以要检查性能计数器是否存在,我使用 PerformanceCounterCategory.Exists
问题是,如果没有这样的类别,那么 PerformanceCounterCategory.Exists 调用(在我的机器上)大约需要 10 秒!不用说它太慢了。
我能做些什么?
自己尝试的代码: using System; 使用 System.Diagnostics;
class Program
{
static void Main(string[] args)
{
var ts = Stopwatch.StartNew();
var res = PerformanceCounterCategory.Exists("XYZ");
Console.WriteLine(ts.ElapsedMilliseconds);
Console.WriteLine("result:" + res);
}
}