19

C# プロジェクトにいくつかのパフォーマンス カウンターを追加し、新しい PerformanceCounterCategory を作成しています。このカテゴリでは、さまざまなものを追跡する複数のカウンター/タイマーが必要です。複数の平均タイマーを使用する必要があり、CoutnerCreationDataCollection に複数の平均タイマーがある場合に、AverageBase カウンターが正しい AverageTimer32 カウンターに関連付けられる方法を理解しようとしています。

いくつかの質問:
1. まず、これは正しい方法ですか? 私が見つけたすべてのサンプルには、平均タイマーが 1 つしかありません。
2. 最初の質問に対する答えが「はい」の場合、AverageTimer32 に続いて最初の AverageBase カウンターがコレクションに追加されたと考えるのは正しいですか? 順番に追加する必要がある記事の参照を見つけました。

これが私がやろうとしていることの例です:

var dataColl = new CounterCreationDataCollection
{
  new CounterCreationData
  {
    CounterType = PerformanceCounterType.AverageTimer32,
    CounterName = "AverageTime1",
    CounterHelp = "AverageTime1_Help"
  },
  new CounterCreationData           // Does this get linked to AverageTime1 simply
                                    // because it is being added after it?
  {
    CounterType = PerformanceCounterType.AverageBase,
    CounterName = "AverageTime1Base"
  },
  new CounterCreationData
  {
    CounterType = PerformanceCounterType.AverageTimer32,
    CounterName = "AverageTime2",
    CounterHelp = "AverageTime2_Help"
  },
  new CounterCreationData
  {
    CounterType = PerformanceCounterType.AverageBase,
    CounterName = "AverageTime2_Base"
  },
}

PerformanceCounterCategory.Create(
                            "MyCategoryName"
                            , "My Category Help"
                            , PerformanceCounterCategoryType.SingleInstance
                            , dataColl);
4

1 に答える 1

19

位置。塩基を必要とするカウンターの直後に、定義リスト内の塩基が続く必要があります。したがって、コードは正しいです。2 つの AverageTimer32 があり、それぞれに AverageBase が続きます。

補足として、同じコードを何度も入力するのに飽きたら、XSLT を使用してパフォーマンス カウンター コードを生成することを検討してください。

于 2010-03-10T17:25:59.167 に答える