収集コントロール API

コード内で収集コントロール API を使用して、インテル® VTune™ プロファイラーがアプリケーションのデータを収集する方法を制御できます。

使用するプリミティブ

説明

void __itt_pause (void)

データを収集せずにアプリケーションを実行します。インテル® VTune™ プロファイラーは、スレッドやプロセスの生成など重要な情報のみを収集することで、収集時のオーバーヘッドを軽減できます。

void __itt_resume (void)

データの収集を再開します。インテル® VTune™ プロファイラーはすべてのデータの収集を再開します。

void __itt_detach (void)

データ収集をデタッチします。インテル® VTune™ プロファイラーはすべてのプロセスからコレクターをデタッチします。アプリケーションはそのまま動作しますが、実行中にデータは収集されません。

データ収集をポーズすると次の効果があります。

ポーズ (Pause)/再開 (Resume) API の呼び出し頻度は 1Hz が妥当なレートです。この操作は、解析の実行中にすべてのプロセスのデータ収集を一時停止および再開し、対応する収集の状態を GUI に通知するため、小さなワークフローで頻繁に呼び出すことは推奨されません。小さなワークロードでは、フレーム API の使用を検討してください。

使用例: 特定のコード領域に注目

次のコードの ポーズ (pause)/ 再開 (resume) 呼び出しは、収集ポーズしてアプリケーションを起動し、特定のコード領域に集中できるようにします。

int main(int argc, char* argv[]) { // Do initialization work here __itt_resume(); // Do profiling work here __itt_pause(); // Do finalization work here return 0; }

使用例: コード領域を隠す

次のコードに示す ポーズ/再開 呼び出しは、注目しないワークを非表示にすることを可能にします。

int main(int argc, char* argv[]) { // Do work here __itt_pause(); // Do uninteresting work here __itt_resume(); // Do work here __itt_detach(); // Do uninteresting work here return 0; }

関連情報