RawEvent-klasse

De C++ Build Insights SDK is compatibel met Visual Studio 2017 en hoger. Als u de documentatie voor deze versies wilt bekijken, stelt u het besturingselement Visual Studio Version selector voor dit artikel in op Visual Studio 2017 of hoger. Deze bevindt zich boven aan de inhoudsopgave op deze pagina.

De RawEvent klasse wordt gebruikt om een algemene gebeurtenis in een EventStack weer te geven.

Syntaxis

class RawEvent
{
public:
    RawEvent(const EVENT_DATA& event);

    const unsigned short&        EventId() const;
    const unsigned long long&    EventInstanceId() const;
    const long long&             TickFrequency() const;
    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;
    const void*                  Data() const;
    const unsigned long&         ProcessId() const;
    const unsigned long&         ThreadId() const;
    const unsigned short&        ProcessorIndex() const;
    const char*                  EventName() const;
    const wchar_t*               EventWideName() 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;
};

Opmerkingen

Verschillende lidfuncties in de RawEvent class retourneren een tick telling. C++ Build Insights maakt gebruik van de prestatiecounter van Windows als bron van tikken. Een tikkenaantal moet worden gebruikt met een tikkenfrequentie om deze te converteren naar een tijdseenheid zoals seconden. De TickFrequency ledenfunctie kan worden aangeroepen om de tickfrequentie te krijgen. Zie de pagina EVENT_DATA voor een voorbeeld van het converteren van tikken naar een tijdseenheid.

Als u tics niet zelf wilt converteren, biedt de RawEvent klasse lidfuncties die tijdwaarden in nanoseconden teruggeven. Gebruik de standaard-C++ chrono -bibliotheek om nanoseconden te converteren naar andere tijdseenheden.

Leden

Constructeur

RawEvent

Functies

CPUTicks
CPUTime
Gegevens
Duur
EventId
EventInstanceId
EventName
EventWideName
ExclusiveCPUTicks
ExclusiveCPUTime
ExclusiveDuration
ExclusiveDurationTicks
ExclusieveVerantwoordelijkheidVoorKloktijd
ExclusieveWandkloktijdVerantwoordelijkheidTikken
ProcessId
ProcessorIndex
StartTimestamp
StopTimestamp
ThreadId
TickFrequency
Verantwoordelijkheid voor wandkloktijd
WallClockTimeResponsibilityTicks

RawEvent

RawEvent(const EVENT_DATA& data);

Parameterwaarden

gebeurtenis
De gebeurtenisgegevens.

CPUTicks

const long long& CPUTicks() const;

Retourwaarde

Het aantal CPU-tikken dat is opgetreden tijdens deze activiteit. Een CPU-tick verschilt van een gewone tick. CPU-tikken worden alleen geteld wanneer de CPU code in een activiteit uitvoert. CPU-tikken worden niet meegeteld wanneer de thread die is gekoppeld aan de activiteit slaapt.

CPU-tijd

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

Retourwaarde

De tijdsduur waarin de CPU code uitvoerde binnen deze activiteit. Deze waarde kan hoger zijn dan de duur van de activiteit als subactiviteiten worden uitgevoerd op aparte threads. De waarde wordt geretourneerd in nanoseconden.

Gegevens

const void* Data() const;

Retourwaarde

Een aanwijzer naar extra gegevens in deze gebeurtenis. Zie EVENT_DATA voor meer informatie over het interpreteren van dit veld.

Duur

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

Retourwaarde

De duur van de activiteit in nanoseconden.

EventId

const unsigned short& EventId() const;

Retourwaarde

Een getal dat het gebeurtenistype aangeeft. Zie EVENT_ID voor een lijst met gebeurtenis-id's.

EventInstanceId

const unsigned long long& EventInstanceId() const;

Retourwaarde

Een getal dat de gebeurtenis uniek identificeert binnen een trace. Deze waarde verandert niet wanneer dezelfde trace meerdere keren wordt geanalyseerd of opnieuw wordt gelogd. Gebruik deze waarde om dezelfde gebeurtenis te identificeren in meerdere analyses of her-analyses van dezelfde tracering.

Naam van het evenement

const char* EventName() const;

Retourwaarde

Een ANSI-tekenreeks met de naam van het gebeurtenistype dat wordt geïdentificeerd door EventId.

EventWideName

const wchar_t* EventWideName() const;

Retourwaarde

Een brede tekenreeks met de naam van het gebeurtenistype dat wordt geïdentificeerd door EventId.

ExclusiveCPUTicks

const long long& ExclusiveCPUTicks() const;

Retourwaarde

Hetzelfde als CPUTicks, maar zonder de CPU-tikken die zijn opgetreden in subactiviteiten.

ExclusiveCPUTime

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

Retourwaarde

Hetzelfde als CPUTime, behalve dat de CPU-tijd van subactiviteiten niet is meegerekend.

ExclusieveDuur

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

Retourwaarde

De duur van de activiteit in nanoseconden, niet inclusief de hoeveelheid tijd die is besteed aan onderliggende activiteiten.

ExclusiveDurationTicks

const long long& ExclusiveDurationTicks() const;

Retourwaarde

Het aantal tikken dat in deze activiteit heeft plaatsgevonden, met uitzondering van het aantal tikken dat plaatsvond in onderliggende activiteiten.

Exclusieve Betrokkenheid bij Kloktijdverantwoordelijkheid

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

Retourwaarde

Hetzelfde als WallClockTimeResponsibility, maar niet inclusief de tijdsverantwoordelijkheid van de wandklok van onderliggende activiteiten.

ExclusieveWandkloktijdVerantwoordelijkheidTikjes

const long long& ExclusiveWallClockTimeResponsibilityTicks() const;

Retourwaarde

Hetzelfde als WallClockTimeResponsibilityTicks, maar zonder de verantwoordelijkheidstikken van de wandkloktijd van kindsactiviteiten.

ProcessId

const unsigned long& ProcessId() const;

Retourwaarde

De id voor het proces waarin de gebeurtenis heeft plaatsgevonden.

ProcessorIndex

const unsigned short& ProcessorIndex() const;

Retourwaarde

De op nul gebaseerde index voor de logische processor waarop de gebeurtenis heeft plaatsgevonden.

Starttijdstempel

const long long& StartTimestamp() const;

Retourwaarde

Een maatstreepwaarde die is vastgelegd op het moment dat de activiteit is gestart.

StopTimestamp

const long long& StopTimestamp() const;

Retourwaarde

Een tikwaarde die is vastgelegd op het moment dat de activiteit stopte.

ThreadId

const unsigned long& ThreadId() const;

Retourwaarde

De id voor de thread waarin de gebeurtenis heeft plaatsgevonden.

Tikinfrequentie

const long long& TickFrequency() const;

Retourwaarde

Het aantal tikken per seconde dat moet worden gebruikt bij het evalueren van een duur die in tikken is gemeten voor dit evenement.

Verantwoordelijkheid voor Wandkloktijd

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

Retourwaarde

De tijdsverantwoordelijkheid van de wandklok van deze activiteit, in nanoseconden. Zie WallClockTimeResponsibilityTicks voor meer informatie over wat verantwoordelijkheid voor wandkloktijd betekent.

Verantwoordelijkheidstikken van de Kloktijd

const long long& WallClockTimeResponsibilityTicks() const;

Retourwaarde

Een tikkentelling die de bijdrage van deze activiteit aan de totale kloktijd aangeeft. Een verantwoordelijkheidsstreepje voor wandkloktijd verschilt van een gewone maatstreepje. De verantwoordelijkheid van de wandklok houdt rekening met parallellisme tussen activiteiten. Twee parallelle activiteiten kunnen een duur hebben van 50 tikken en dezelfde begin- en eindtijd. In dit geval krijgen beide een verantwoordelijkheid voor wandkloktijd van 25 tikken toegewezen.