次の方法で共有


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;
};

参照

概念

perf_object

perfmon

COM 属性

データ メンバ属性

ATL サンプル