Класс 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 тактов физического времени.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по