私はこのコードを持っています: 私はパフォーマンスカウンタを作成します。 OKを実行します。存在しない場合はパフォーマンスカウンタも作成しますが、perfmonを使用する場合はこのパフォーマンスカウンタを見つけることができません。私のパフォーマンスカウンターはどこですか?それは作成されますが、私はperfmonでそれを見ることができません
何が起こっていますか?
const string _categoryName = "MyPerformanceCounter";
if (!PerformanceCounterCategory.Exists(_categoryName))
{
CounterCreationDataCollection counters = new CounterCreationDataCollection();
CounterCreationData ccdWorkingThreads = new CounterCreationData();
ccdWorkingThreads.CounterName = "# working threads";
ccdWorkingThreads.CounterHelp = "Total number of operations executed";
ccdWorkingThreads.CounterType = PerformanceCounterType.NumberOfItems32;
counters.Add(ccdWorkingThreads);
// create new category with the counters above
PerformanceCounterCategory.Create(_categoryName,
"Performance counters of my app",
PerformanceCounterCategoryType.SingleInstance,
counters);
}
1つの問題は、実行中のプロセスが管理者である、またはPERFカウンターを作成するための特定の権限を有していなければならないことです。このため、通常、実行時ではなくインストール時に新しいperfカウンタが作成されます。あなたのアプリに管理者権限がないとどうなるのか覚えていない。それは単に静かにカウンタを作成することができないかもしれません。私はそれが例外を投げると思うだろう...しかし、とにかく、あなたがまだない場合は、あなたのアプリを管理者として実行してみてください。 – CodingWithSpike
また、perfmonの実行中にカウンタを作成する場合、perfmonを再起動して新しいカウンタを認識させる必要があります。 –
さらに、カウンターはすぐに表示されません。時々、それらを見ることができるのに数秒かかることがあります。 –