(練習問題)パフォーマンス・カウンタ

答え

  • C. CounterType = PerformanceCounterType.SampleBase;
01 void CreateCounters() {
02     if (!PerformanceCounterCategory.Exists("Contoso")) {
03         var counters = new CounterCreationDataCollection();
04         var ccdCounterA = new CounterCreationData{
05             CounterName = "CounterA",
06             CounterType = PerformanceCounterType.SampleFraction;
07         };
08         counters.Add(ccdCounterA);
09         var ccdCounterB = new CounterCreationData{
10             CounterName = "CounterB";
11             CounterType = PerformanceCounterType.SampleBase;
12         };
13         counters.Add(ccdCounterB);
14         PerformanceCounterCategory.Create("Contoso", "Help string", PerformanceCounterCategoryType.MultiInstance, counters);
15     }
16 }

解説

下表は、ベースカウンターとパフォーマンスカウンターの対応表です。

ベースカウンターパフォーマンスカウンター
AverageBaseAverageTimer32
AverageTimer64
CounterMultiBaseCounterMultiTimer
CounterMultiTimerInverse
CounterMultiTimer100Ns
CounterMultiTimer100NsInverse
RawBaseRawFraction
SampleBaseSampleFraction

この対応表によると、CounterAで設定しているパフォーマンスカウンターSampleFractionに対応するベースカウンターはSampleBaseですので、答えはC.が正解です。

参考

PerformanceCounterType Enum