独自のパフォーマンス カウンターの束を使用する一種のライブラリがあります。しかし、そのパフォーマンス カウンターがインストールされていなくても、ライブラリが正常に動作することを望みます。
そのため、PerformanceCounter の周りにラッパーを作成し、最初の使用時に PerfCounter が存在するかどうかを確認しました。それらが存在する場合、代わりにネイティブの PerformanceCounter を使用しています。何もしないラッパーを使用しています。
したがって、パフォーマンスカウンターの存在を確認するには、 PerformanceCounterCategory.Exists を使用します
問題は、そのようなカテゴリがない場合、PerformanceCounterCategory.Exists の呼び出しに (私のマシンでは) 約 10 秒かかることです! 遅すぎるのは言うまでもありません。
私に何ができる?
自分で試すためのコード: システムを使用。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);
}
}