収集コントロール 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[])
    {
    // 初期化
    __itt_resume();
    // プロファイル
    __itt_pause();
    // ファイナライズ
    return 0;
    }

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

次のコードに示す pause/resume 呼び出しは、注目しないワークを非表示にします。


    int main(int argc, char* argv[])
    {
    // プロファイルするワーク
    __itt_pause();
    // プロファイルしないワーク
    __itt_resume();
    // プロファイルするワーク
    __itt_detach();
    // プロファイルしないワーク
    return 0;
    }

関連情報