我有一个简单的监控应用程序,它从PerfMon计数器获取一些值。即使在本地计算机上进行测试,创建新的PerformanceCounter
对象也需要30秒以上。
using System;
using System.Diagnostics;
namespace test_slow_perfmon
{
class Program
{
static void Main(string[] args)
{
Stopwatch w = new Stopwatch();
w.Start();
PerformanceCounter c = new PerformanceCounter("PhysicalDisk", "Avg. Disk Read Queue Length", "_Total", "localhost");
w.Stop();
Console.WriteLine(string.Format("Creating a counter took {0}ms", w.Elapsed.TotalMilliseconds));
}
}
}
从中输出表示超过32秒来创建每个计数器。
我可以做些什么(如果有的话)来加速计数器的创建?
答案 0 :(得分:3)
尝试使用the constructor that doesn't specify a hostname创建您的perfmon计数器,看看是否有帮助:
PerformanceCounter c = new PerformanceCounter("PhysicalDisk", "Avg. Disk Read Queue Length", "_Total");