perf_counter
この属性を perf_object クラスのデータ メンバに適用すると、データ メンバはパフォーマンス カウンタとして公開されます。
[ perf_counter(
namestring,
helpstring,
name_res,
help_res,
countertype,
defscale,
default_counter,
detail,
countertype,
max_counter_size,
countertype_string
) ]
パラメータ
namestring
パフォーマンス カウンタの名前を格納する文字列。この名前は、パフォーマンス モニタのコンソールに表示されます。name_res 引数を使用すると、この名前の代わりにリソース ID の形式で指定できます。パフォーマンス カウンタの名前は、これら 2 つの引数のいずれかを使用して指定する必要があります。helpstring
パフォーマンス カウンタの説明を格納する文字列。このヘルプ文字列は、パフォーマンス モニタのコンソールに表示されます。help_res 引数を使用すると、この説明の代わりにリソース ID の形式で指定できます。ヘルプ文字列は、これら 2 つの引数のいずれかを使用して指定する必要があります。name_res
パフォーマンス カウンタの名前のリソース ID を指定するための整数。この名前は、パフォーマンス モニタのコンソールに表示されます。この引数を指定する場合は、namestring 引数を省略する必要があります。help_res
パフォーマンス カウンタの説明のリソース ID を指定するための整数。このヘルプ文字列は、パフォーマンス モニタのコンソールに表示されます。この引数を指定する場合は、helpstring 引数を省略する必要があります。countertype
パフォーマンス カウンタの型を指定するための整数。詳細については、MSDN ライブラリの「Calculations for Raw Counter Data」を参照してください。代わりに、countertype_string 引数も使用できます。defscale
実際のカウンタの値に使用される指数値。既定値は 0 です。default_counter
オブジェクトの既定のカウンタであることを示す Boolean 値。既定のカウンタは、1 個のオブジェクトに対して 1 つだけ設定できます。既定値は false です。detail
カウンタの詳細レベルを指定するための整数です。既定値は PERF_DETAIL_NOVICE です。次のいずれかの値を指定できます。詳細レベル
説明
PERF_DETAIL_NOVICE
このカウンタが大半のユーザーに対して有意であることを示します。これは、最も一般的なカウンタ詳細レベルです。
PERF_DETAIL_ADVANCED
このカウンタが上級ユーザーに対してだけ有用であることを示します。
PERF_DETAIL_EXPERT
このカウンタが、最上級ユーザーに対してだけ有用であることを示します。
PERF_DETAIL_WIZARD
このカウンタが、一部のユーザーに対して有用ではないことを示します。
max_counter_size
文字列カウンタ データの予約領域の最大容量を指定する整数。既定値は 0 で、最大値が指定されていないことを示します。カウンタの型に PERF_SIZE_DWORD フラグまたは PERF_SIZE_LARGE フラグが指定されている数値カウンタは、固定サイズであるため、このパラメータを指定できない場合があります。countertype_string
文字列で指定するカウンタの型。この引数を指定する場合は、countertype 引数を省略する必要があります。この引数には、次の文字列のいずれかを指定できます。countertype_string
パフォーマンス データの型
"counter"
PERF_COUNTER_COUNTER
"timer"
PERF_COUNTER_TIMER
"bulk_count"
PERF_COUNTER_BULK_COUNT
"text"
PERF_COUNTER_TEXT
"rawcount"
PERF_COUNTER_RAWCOUNT
"value"
PERF_COUNTER_VALUE
"rate"
PERF_COUNTER_RATE
"fraction"
PERF_COUNTER_FRACTION
"base"
PERF_COUNTER_BASE
"elapsed"
PERF_COUNTER_ELAPSED
"queuelen"
PERF_COUNTER_QUEUELEN
"histogram"
PERF_COUNTER_HISTOGRAM
"precision"
PERF_COUNTER_PRECISION
詳細については、MSDN ライブラリの「Calculations for Raw Counter Data」を参照してください。
必要条件
属性コンテキスト
対象 |
データ メンバ |
複数回の適用 |
不可 |
必要な属性 |
なし |
無効な属性 |
なし |
属性コンテキストの詳細については、「属性コンテキスト」を参照してください。
必要条件
ヘッダー |
atlperf.h |
プロジェクト |
EXE、DLL |
コンパイラ |
/D "_ATL_ATTRIBUTES" |
必要条件の項目の詳細については、「属性の必要条件」を参照してください。
解説
この属性は、パフォーマンス カウンタとして使用されるデータ メンバに適用されます。新しいカウンタが含まれるクラスは、perf_object 属性を使用して定義する必要があります。
必須の引数であるカウンタ名とヘルプ文字列は、文字列またはリソースのどちらの形式でも指定できます。ただし、これらの引数は両方とも同じ形式で指定する必要があります。カウンタの型も必須の引数であり、文字列または整数のいずれかの形式で指定できます。
以下のカウンタ型については、Type 1 の [perf_counter] エントリの後に Type 2 の [perf_counter] エントリがくる必要があります。たとえば、PERF_AVERAGE_TIMER エントリの後に PERF_AVERAGE_BASE の 1 つを指定する必要があります。
Perf Counter Type 1 |
Perf Counter Type 2 |
---|---|
PERF_AVERAGE_BULK |
PERF_AVERAGE_BASE |
PERF_AVERAGE_TIMER |
PERF_AVERAGE_BASE |
PERF_RAW_FRACTION |
PERF_RAW_BASE |
PERF_SAMPLE_COUNTER |
PERF_SAMPLE_BASE |
PERF_SAMPLE_FRACTION |
PERF_SAMPLE_BASE |
PERF_COUNTER_MULTI_TIMER |
PERF_COUNTER_MULTI_BASE |
PERF_COUNTER_MULTI_TIMER_INV |
PERF_COUNTER_MULTI_BASE |
PERF_100NSEC_MULTI_TIMER |
PERF_COUNTER_MULTI_BASE |
PERF_100NSEC_MULTI_TIMER_INV |
PERF_COUNTER_MULTI_BASE |
使用例
#include <atlperf.h>
[ perf_object( namestring = "MyPerfObject", helpstring = "Object Help") ]
class CMyPerfObject
{
[ perf_counter(namestring="MyCounter", helpstring="Counter Help",
countertype_string="rawcount") ]
ULONG m_nCounter;
};
#define _ATL_ATTRIBUTES
#include <atlperf.h>
[ perf_object( namestring = "MyPerfObject", helpstring = "Object Help") ]
class CMyPerfObject
{
[
perf_counter(namestring = "MyRawFraction",
helpstring = "Raw Fraction Help",
countertype = PERF_RAW_FRACTION)
]
ULONG m_nRF;
[
perf_counter(namestring = "MyRawFractionBase",
helpstring = "Raw Fraction Base Help",
countertype = PERF_RAW_BASE)
]
ULONG m_nRFBase;
};