Classe de atividade

O SDK do C++ Build Insights é compatível com o Visual Studio 2017 e posterior. Para ver a documentação dessas versões, defina o controle seletor de Versão do Visual Studio deste artigo para o Visual Studio 2017 ou posterior. Ele é encontrado na parte superior da tabela de conteúdo nesta página.

A classe Activity é usada com as funções MatchEvent, MatchEventInMemberFunction, MatchEventStack e MatchEventStackInMemberFunction. Use-a para corresponder a qualquer evento de atividade. Confira a tabela de eventos para ver todos os eventos que podem ter correspondência com a classe Activity.

Sintaxe

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;
};

Comentários

Várias funções membro na classe Activity retornam uma contagem de tiques. O C++ Build Insights usa o contador de desempenho do Windows como uma fonte de tiques. Uma contagem de tiques precisa ser usada com uma frequência de tiques para convertê-la em uma unidade de tempo, como segundos. A função membro TickFrequency, disponível na classe base Event, pode ser chamada para obter a frequência de tiques. A página EVENT_DATA mostra um exemplo de conversão de tiques em uma unidade de tempo.

Se você não quiser converter tiques por conta própria, a classe Activity fornece funções membro que retornam valores temporais em nanossegundos. Use a Biblioteca Padrão C++ chrono para convertê-los em outras unidades de tempo.

Membros

Junto com os membros herdados de sua classe base Event, a classe Activity contém os seguintes membros:

Construtor

Atividade

Funções

CPUTicks
CPUTime
Duration
ExclusiveCPUTicks
ExclusiveCPUTime
ExclusiveDuration
ExclusiveDurationTicks
ExclusiveWallClockTimeResponsibility
ExclusiveWallClockTimeResponsibilityTicks
StartTimestamp
StopTimestamp
WallClockTimeResponsibility
WallClockTimeResponsibilityTicks

Atividade

Activity(const RawEvent& event);

Parâmetros

event
Qualquer evento de atividade.

CPUTicks

const long long& CPUTicks() const;

Valor de Devolução

O número de tiques de CPU que ocorreram durante essa atividade. Um tique de CPU é diferente de um tique comum. Os tiques de CPU só são contados quando a CPU está executando código em uma atividade. Os tiques de CPU não são contados quando o thread associado à atividade está ocioso.

CPUTime

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

Valor de Devolução

A quantidade de tempo pelo qual a CPU estava executando código dentro dessa atividade. Esse valor poderá ser maior do que a duração da atividade se as atividades filho forem executadas em threads separados. O valor é retornado em nanossegundos.

Duration

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

Valor de Devolução

A duração da atividade em nanossegundos.

ExclusiveCPUTicks

const long long& ExclusiveCPUTicks() const;

Valor de Devolução

O mesmo que CPUTicks, mas não incluindo os tiques de CPU que ocorreram em atividades filho.

ExclusiveCPUTime

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

Valor de Devolução

O mesmo que CPUTime, exceto que o tempo de CPU das atividades filho não está incluído.

ExclusiveDuration

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

Valor de Devolução

A duração da atividade em nanossegundos, sem incluir a quantidade de tempo gasto em atividades filho.

ExclusiveDurationTicks

const long long& ExclusiveDurationTicks() const;

Valor de Devolução

O número de tiques que ocorreram nessa atividade, excluindo o número de tiques que ocorreram em atividades filho.

ExclusiveWallClockTimeResponsibility

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

Valor de Devolução

O mesmo que WallClockTimeResponsibility, mas não incluindo a responsabilidade do tempo do relógio das atividades filho.

ExclusiveWallClockTimeResponsibilityTicks

const long long& ExclusiveWallClockTimeResponsibilityTicks() const;

Valor de Devolução

O mesmo que WallClockTimeResponsibilityTicks, mas não incluindo os tiques da responsabilidade do tempo do relógio das atividades filho.

StartTimestamp

const long long& StartTimestamp() const;

Valor de Devolução

Um valor de tique capturado no momento em que a atividade foi iniciada.

StopTimestamp

const long long& StopTimestamp() const;

Valor de Devolução

Um valor de tique capturado no momento em que a atividade foi interrompida.

WallClockTimeResponsibility

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

Valor de Devolução

A responsabilidade do tempo do relógio dessa atividade, em nanossegundos. Para obter mais informações sobre o que significa a responsabilidade do tempo do relógio, confira WallClockTimeResponsibilityTicks.

WallClockTimeResponsibilityTicks

const long long& WallClockTimeResponsibilityTicks() const;

Valor de Devolução

Uma contagem de tiques que representa a contribuição dessa atividade para o tempo geral do relógio de parede. Um tique de responsabilidade do tempo do relógio de parede é diferente de um tique comum. Os tiques de responsabilidade do tempo do relógio de parede levam em conta o paralelismo entre as atividades. Duas atividades paralelas podem ter uma duração de 50 tiques e a mesma hora de início e de parada. Nesse caso, ambos recebem a atribuição de uma responsabilidade de tempo de relógio de parede de 25 tiques.