Класс Activity

Пакет SDK Аналитика для сборки C++ совместим с Visual Studio 2017 и более поздними версиями. Чтобы увидеть документацию для этих версий, установите в данной статье селектор Версия Visual Studio в Visual Studio 2017 и более поздних версий. Он находится в верхней части оглавления на этой странице.

Класс Activity используется с функциями MatchEvent, MatchEventInMemberFunction, MatchEventStack и MatchEventStackInMemberFunction. Используйте его для сопоставления любого события действия. Чтобы просмотреть все события, которые можно сопоставить с помощью класса Activity, см. таблицу событий.

Синтаксис

class Activity : public Event
{
public:
    Activity(const RawEvent& event);

    const long long& StartTimestamp() const;
    const long long& StopTimestamp() const;
    const long long& ExclusiveDurationTicks() const;
    const long long& CPUTicks() const;
    const long long& ExclusiveCPUTicks() const;
    const long long& WallClockTimeResponsibilityTicks() const;
    const long long& ExclusiveWallClockTimeResponsibilityTicks() const;

    std::chrono::nanoseconds Duration() const;
    std::chrono::nanoseconds ExclusiveDuration() const;
    std::chrono::nanoseconds CPUTime() const ;
    std::chrono::nanoseconds ExclusiveCPUTime() const;
    std::chrono::nanoseconds WallClockTimeResponsibility() const;
    std::chrono::nanoseconds ExclusiveWallClockTimeResponsibility() const;
};

Замечания

Несколько функций членов в классе Activity возвращают счетчик тактов. Аналитика сборок C++ использует в качестве источника тактов счетчик производительности Windows. Счетчик тактов необходимо использовать с частотой тактов, чтобы преобразовать их в единицу времени, например в секунды. Чтобы получить частоту тактов, можно вызвать функцию члена TickFrequency, доступную в базовом классе Event. На странице EVENT_DATA показан пример преобразования тактов в единицу времени.

Если вы не хотите самостоятельно преобразовывать такты в единицы времени, класс Activity предоставляет функции членов, которые возвращают значения времени в наносекундах. Используйте стандартную библиотеку C++ chrono для преобразования тактов в другие единицы времени.

Участники

Наряду с членами, унаследованными от базового класса Event, класс Activity содержит следующие члены:

Конструктор

Деятельность

Функции

CPUTicks
CPUTime
Длительность
ExclusiveCPUTicks
ExclusiveCPUTime
ExclusiveDuration
ExclusiveDurationTicks
ExclusiveWallClockTimeResponsibility
ExclusiveWallClockTimeResponsibilityTicks
StartTimestamp
StopTimestamp
WallClockTimeResponsibility
WallClockTimeResponsibilityTicks

Действие

Activity(const RawEvent& event);

Параметры

event
Любое событие действия.

CPUTicks

const long long& CPUTicks() const;

Возвращаемое значение

Число тактов ЦП, произошедших во время этого действия. Такт ЦП отличается от обычного такта. Такты ЦП учитываются только тогда, когда ЦП исполняет код в этом действии. Такты ЦП не учитываются, пока связанный с действием поток находится в спящем режиме.

CPUTime

std::chrono::nanoseconds CPUTime()() const;

Возвращаемое значение

Время, в течение которого ЦП выполнял код в рамках этого действия. Это значение может превышать длительность действия, если дочерние действия выполняются в отдельных потоках. Значение возвращается в наносекундах.

Длительность

std::chrono::nanoseconds Duration() const;

Возвращаемое значение

Длительность действия в наносекундах.

ExclusiveCPUTicks

const long long& ExclusiveCPUTicks() const;

Возвращаемое значение

Аналогичное значению CPUTicks, однако не содержит такты ЦП, которые произошли в дочерних действиях.

ExclusiveCPUTime

std::chrono::nanoseconds ExclusiveCPUTime() const;

Возвращаемое значение

Аналогичное значению CPUTime, за исключением того, что в нем не содержится время ЦП дочерних действий.

ExclusiveDuration

std::chrono::nanoseconds ExclusiveDuration() const;

Возвращаемое значение

Длительность действия в наносекундах, за исключением времени, затраченного на выполнение дочерних действий.

ExclusiveDurationTicks

const long long& ExclusiveDurationTicks() const;

Возвращаемое значение

Количество тактов, произошедших в этом действии, за исключением количества тактов, произошедших в дочерних действиях.

ExclusiveWallClockTimeResponsibility

std::chrono::nanoseconds ExclusiveWallClockTimeResponsibility() const;

Возвращаемое значение

Аналогичное значению WallClockTimeResponsibility, однако не содержит физическое время выполнения дочерних действий.

ExclusiveWallClockTimeResponsibilityTicks

const long long& ExclusiveWallClockTimeResponsibilityTicks() const;

Возвращаемое значение

Аналогичное значению WallClockTimeResponsibilityTicks, однако не содержит такты физического времени выполнения дочерних действий.

StartTimestamp

const long long& StartTimestamp() const;

Возвращаемое значение

Значение такта, зафиксированное во время начала действия.

StopTimestamp

const long long& StopTimestamp() const;

Возвращаемое значение

Значение такта, зафиксированное во время остановки действия.

WallClockTimeResponsibility

std::chrono::nanoseconds WallClockTimeResponsibility() const;

Возвращаемое значение

Физическое время выполнения для этой операции в наносекундах. Дополнительные сведения о том, что означает физическое время выполнения, см. в разделе WallClockTimeResponsibilityTicks.

WallClockTimeResponsibilityTicks

const long long& WallClockTimeResponsibilityTicks() const;

Возвращаемое значение

Счетчик тактов, который представляет вклад этого действия в общее физическое время выполнения. Такт реального времени выполнения часах отличается от обычного такта. В тактах реального времени выполнения учитывается параллелизм при выполнении действий. Два действия, которые выполняются параллельно, могут иметь длительность 50 тактов, а также идентичное время начала и завершения. В этом случае обоим процессам будет присвоено значение 25 тактов физического времени.