Activity クラス
C++ Build Insights SDK は、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++ Build Insights では、ティックのソースとして Window のパフォーマンス カウンターが使用されます。 ティック数をティック周波数と共に使用して、秒などの時間単位に変換する必要があります。 Event 基底クラスで使用できる TickFrequency メンバー関数を呼び出して、ティック周波数を取得することができます。 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;
戻り値
このアクティビティの間に発生した CPU ティックの数。 CPU ティックは、通常のティックとは異なります。 CPU ティックは、アクティビティ内のコードが CPU によって実行されている場合にのみカウントされます。 アクティビティに関連付けられているスレッドがスリープ状態のときには、CPU ティックはカウントされません。
CPUTime
std::chrono::nanoseconds CPUTime()() const;
戻り値
CPU がこのアクティビティ内でコードを実行していた時間の長さ。 子アクティビティが別のスレッドで実行される場合、この値はアクティビティの期間より長くなる可能性があります。 値はナノ秒単位で返されます。
期間
std::chrono::nanoseconds Duration() const;
戻り値
アクティビティの継続時間 (ナノ秒単位)。
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 と同じですが、子アクティビティのウォール クロック時間責任ティック数は含まれません。
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;
戻り値
全体的なウォール クロック時間に対するこのアクティビティの影響を表すティック数。 実時間の責任ティックは、通常のティックとは異なります。 実時間の責任ティックでは、アクティビティ間の並列処理が考慮されます。 2 つの並列アクティビティが 50 ティックの期間を持ち、開始時刻と終了時刻が同じであるとします。 この場合、両方に 25 ティックのウォール クロック時間責任が割り当てられます。