カウンター API

カウンター API を使用して、インテル® VTune™ プロファイラーが識別できないユーザー定義のグローバル特性カウンターを監視します。例えば、システムオンチップ (SoC) 開発では、SoC のさまざまな部分を表す複数のカウンターを使用して、ハードウェア特性をカウントできます。

カウンター・オブジェクトを定義および作成

使用するプリミティブ:

__itt_counter

__itt_counter_create(const char *name, const char *domain);

__itt_counter_createA(const char *name, const char *domain);

__itt_counter_createW(const wchar_t *name, const wchar_t *domain);

__itt_counter_create_typed (const char *name, const char *domain, __itt_metadata_type type);

__itt_counter __itt_counter_create_typedA __itt_counter_create_typedA(const char *name, const char *domain, __itt_metadata_type type)

__itt_counter __itt_counter_create_typedW __itt_counter_create_typedW(const wchar_t *name, const wchar_t *domain, __itt_metadata_type type)

__itt_counter_create_v3(__itt_domain* domain, const char* name,__itt_metadata_type type);

カウンター名とドメイン名を指定する必要があります。特殊なデータのタイプをロードするには、カウンタータイプを指定します。デフォルトでは unsigned int64 タイプが使用されます。

プリミティブのパラメーター:

[in]

domain

カウンタードメイン

[in]

name

カウンター名

[in]

type

カウンタータイプ

インクリメント/デクリメントするカウンター値

使用するプリミティブ:

__itt_counter_inc (__itt_counter id);

__itt_counter_inc_delta(__itt_counter id, unsigned long long value);

__itt_counter_dec(__itt_counter id);

__itt_counter_dec_delta(__itt_counter id, unsigned long long value);

これらのプリミティブは uint64 カウンターにのみ適用されます。

カウンター値を直接設定します

次を使用します。

__itt_counter_set_value(__itt_counter id, void *value_ptr);

__itt_counter_set_value_v3(__itt_counter counter, void *value_ptr);

プリミティブのパラメーター:

[in]

id

カウンター ID

[in]

value_ptr

カウンター値

既存のカウンターを削除します

使用:

__itt_counter_destroy(__itt_counter id);

使用例

この例は、温度とメモリー使用メトリックを測定するカウンターを作成します。

#include "ittnotify.h" 

__itt_counter temperatureCounter = __itt_counter_create("Temperature", "Domain"); 
__itt_counter memoryUsageCounter = __itt_counter_create("Memory Usage", "Domain"); 
unsigned __int64 temperature; 

while (...) { 
    ... 
    temperature = getTemperature(); 
    __itt_counter_set_value(temperatureCounter, &temperature); 
    __itt_counter_inc_delta(memoryUsageCounter, getAllocatedMemSize()); 
    __itt_counter_dec_delta(memoryUsageCounter, getDeallocatedMemSize()); 
    ... 
} 

__itt_counter_destroy(temperatureCounter); 
__itt_counter_destroy(memoryUsageCounter);

関連情報