RawEvent クラス

C++ Build Insights SDK は、Visual Studio 2017 以降と互換性があります。 これらのバージョンのドキュメントを表示するには、この記事の Visual Studio バージョン セレクター コントロールを Visual Studio 2017 以降に設定します。 このページの目次の一番上にあります。

RawEvent クラスは、EventStack の一般的なイベントを表すために使用されます。

構文

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

解説

RawEvent クラスのいくつかのメンバー関数からは、ティック数が返されます。 C++ Build Insights では、ティックのソースとして Window のパフォーマンス カウンターが使用されます。 ティック数をティック周波数と共に使用して、秒などの時間単位に変換する必要があります。 TickFrequency メンバー関数を呼び出して、ティック周波数を取得できます。 ティック数を時間単位に変換する方法の例については、EVENT_DATA に関するページを参照してください。

ティック数を自分で変換したくない場合は、RawEvent クラスに、時間の値をナノ秒単位で返すメンバー関数が用意されています。 ナノ秒単位を他の時間単位に変換するには、C++ の標準 chrono ライブラリを使用します。

メンバー

コンストラクター

RawEvent

機能

CPUTicks
CPUTime
データ
期間
EventIdEventInstanceIdEventName
EventWideName
ExclusiveCPUTicks
ExclusiveCPUTime
ExclusiveDuration
ExclusiveDurationTicks
ExclusiveWallClockTimeResponsibility
ExclusiveWallClockTimeResponsibilityTicks
ProcessId
ProcessorIndex
StartTimestamp
StopTimestamp
ThreadId
TickFrequency
WallClockTimeResponsibility
WallClockTimeResponsibilityTicks

RawEvent

RawEvent(const EVENT_DATA& data);

パラメーター

event
イベントのデータ。

CPUTicks

const long long& CPUTicks() const;

戻り値

このアクティビティの間に発生した CPU ティックの数。 CPU ティックは、通常のティックとは異なります。 CPU ティックは、アクティビティ内のコードが CPU によって実行されている場合にのみカウントされます。 アクティビティに関連付けられているスレッドがスリープ状態のときには、CPU ティックはカウントされません。

CPUTime

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

戻り値

CPU がこのアクティビティ内でコードを実行していた時間の長さ。 子アクティビティが別のスレッドで実行される場合、この値はアクティビティの期間より長くなる可能性があります。 値はナノ秒単位で返されます。

データ

const void* Data() const;

戻り値

このイベントに含まれる追加データへのポインター。 このフィールドを解釈する方法の詳細については、EVENT_DATA に関する記事を参照してください。

期間

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

戻り値

アクティビティの継続時間 (ナノ秒単位)。

EventId

const unsigned short& EventId() const;

戻り値

イベントの種類を識別する番号。 イベント識別子の一覧については、EVENT_ID に関する記事をご覧ください。

EventInstanceId

const unsigned long long& EventInstanceId() const;

戻り値

トレース内のイベントを一意に識別する番号。 この値は、同じトレースを複数回分析またはログに再記録しても変わりません。 この値を使用して、同じトレースに対する複数の分析パスまたは再ログ記録パスで同じイベントを識別します。

EventName

const char* EventName() const;

戻り値

EventId によって示されるイベントの種類の名前が含まれる ANSI 文字列。

EventWideName

const wchar_t* EventWideName() const;

戻り値

EventId によって示されるイベントの種類の名前が含まれるワイド文字列。

ExclusiveCPUTicks

const long long& ExclusiveCPUTicks() const;

戻り値

CPUTicks と同じですが、子アクティビティで発生した CPU ティック数は含まれません。

ExclusiveCPUTime

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

戻り値

子アクティビティの CPU 時間が含まれない点を除いて、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 と同じですが、子アクティビティのウォール クロック時間責任ティック数は含まれません。

ProcessId

const unsigned long& ProcessId() const;

戻り値

イベントが発生したプロセスの識別子。

ProcessorIndex

const unsigned short& ProcessorIndex() const;

戻り値

イベントが発生した論理プロセッサに対する 0 から始まるインデックス。

StartTimestamp

const long long& StartTimestamp() const;

戻り値

アクティビティが開始した時刻にキャプチャされたティック値。

StopTimestamp

const long long& StopTimestamp() const;

戻り値

アクティビティが停止した時刻にキャプチャされたティック値。

スレッド Id

const unsigned long& ThreadId() const;

戻り値

イベントが発生したスレッドの識別子。

TickFrequency

const long long& TickFrequency() const;

戻り値

このイベントのティック単位で計測された期間を評価するときに使用する、1 秒あたりのティック数。

WallClockTimeResponsibility

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

戻り値

このアクティビティのウォール クロック時間責任 (ナノ秒単位)。 ウォール クロック時間責任の詳細については、「WallClockTimeResponsibilityTicks」を参照してください。

WallClockTimeResponsibilityTicks

const long long& WallClockTimeResponsibilityTicks() const;

戻り値

全体的なウォール クロック時間に対するこのアクティビティの影響を表すティック数。 実時間の責任ティックは、通常のティックとは異なります。 実時間の責任ティックでは、アクティビティ間の並列処理が考慮されます。 2 つの並列アクティビティが 50 ティックの期間を持ち、開始時刻と終了時刻が同じであるとします。 この場合、両方に 25 ティックのウォール クロック時間責任が割り当てられます。