カウンター 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)
カウンター名とドメイン名を指定する必要があります。特殊なデータ型をロードするには、カウンタータイプを指定します。デフォルトでは、unsigned int64 型が使用されます。
プリミティブのパラメーター:
[in] |
domain |
カウンタードメイン |
[in] |
name |
カウンター名 |
[in] |
type |
カウンタータイプ |
カウンター値をインクリメント/デクリメントするには、次のプリミティブを使用します。
uint64 カウンターでのみ使用できます。
__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);
カウンター値を直接設定するには、次のプリミティブを使用します。
__itt_counter_set_value(__itt_counter id, 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);