パフォーマンス・カウンター(回答)

答え

  • C. CounterType = PerformanceCounterType.SampleBase;

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

解説

Counter1Counter2 の選択肢で上がっている CounterType をまとめると、以下の通りです。

選択肢

CounterType

内容

-

SampleFraction

セットに対するサブセットの比率をパーセントで示す即時パーセントカウンターです。

A

RawBase

通常の算術的な分数を表すカウンターの分母を格納するベースカウンターです。

B

AverageBase

AverageTime32AverageCount64 など、時間または回数の平均を計算するために使用されるベースカウンターです。

C

SampleBase

取得したサンプリング割り込みの回数を格納するベースカウンターです。

D

CounterMultiBase

サンプリングする項目の数を示すベースカウンターです。

次に、ベースカウンターとパフォーマンスカウンターの対応表を確認します。

ベースカウンター

パフォーマンスカウンター

AverageBase

AverageTimer32

AverageCount64

CounterMultiBase

CounterMultiTimer

CounterMultiTimerInverse

CounterMultiTimer100Ns

CounterMultiTimer100NsInverse

RawBase

RawFraction

SampleBase

SampleFraction

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

参考