User Guide

  • 2021.1
  • 03/24/2021
  • Public Content
Contents

Counter API

Counter is a user-defined characteristic or metric of hardware or software behavior that can be used to collect information about and correlate with execution breakdown, such as tasks, events, and markers.
For example, it is useful for system on a chip (SoC) development when different counters may represent different parts of the SoC and count some hardware characteristics.
To define and create a counter object, use the following primitives:
__itt_counter
ITTAPI
__itt_counter_create_typedA __itt_counter_create_typedA(const char *name, const char *domain, __itt_metadata_type type)
__itt_counter
ITTAPI
__itt_counter_create_typedW __itt_counter_create_typedW(const wchar_t *name, const wchar_t *domain, __itt_metadata_type type)
Parameters of the primitives:
[in]
domain
Counter domain
[in]
name
Counter name
[in]
type
Counter type
To directly set the counter value, use the following primitive:
__itt_counter_set_value(__itt_counter id, void *value_ptr);
Parameters of the primitive:
[in]
id
Counter ID
[in]
value_ptr
Counter value

Usage Example

The following example creates a counter that measures temperature and memory usage metrics:
#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);

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.