検出されたすべてのループでインテル® Advisor を使用してターゲット・アプリケーションを実行すると、ターゲット・アプリケーションの実行時間が大幅に増加する場合があります。パースペクティブで選択した精度レベルと解析に応じて、アプリケーションの実行時間には異なるオーバーヘッドが追加されます。以下に例を示します。
ランタイム・オーバーヘッド/解析 |
サーベイ |
特性化 |
依存関係 |
MAP |
|---|---|---|---|---|
インテル® Advisor を使用した場合と、使用しない場合のアプリケーションの実行時間の比較 |
1.1x 増加 |
2 - 55x 増加 |
5 - 100x 増加 |
5 - 20x 増加 |
次の表は、インテル® Advisor の解析データを収集と、ファイナライズのオーバーヘッドを最小限にする方法をまとめたものです。
次の表は、これらの関連をまとめたものです。詳細については、解析のオーバーヘッドを最小化する収集のコントロール手法を参照してください。
最小化の手法 |
影響する解析 |
サマリー |
|---|---|---|
API を使用して収集のポーズと再開 |
|
収集のポーズ:
収集の再開:
|
アノテーションを使用して収集のポーズ/再開 |
一部の解析タイプでは、スレッド化パースペクティブのワークフローで使用されるアノテーション構造が認識されます。 |
収集のポーズ:
収集の再開:
注インテル® Advisor 2021.1 以降では C# と .NET のサポートが非推奨となりました。 |
収集をポーズしてアプリケーションを起動します |
|
収集をポーズしてアプリケーションを起動します。
注さまざまな方法で収集を再開できます。最も一般的なものが__itt_resume |
収集をポーズしてターゲット・アプリケーションを開始し、N 秒後に収集を再開します |
|
GUI 制御: [Project Properties (プロジェクトのプロパティー)] > [Analysis Target (解析ターゲット)] > [<Name> Analysis (<名前>解析)] > [Advanced (高度)] > [Automatically resume collection after (sec) (指定時間後に収集を自動再開 (秒))] チェックボックス Advisor CLI アクションオプション:-resume-after=<integer> |
N 秒後に収集を停止 |
All |
GUI 制御: [プロジェクトのプロパティー] > [解析ターゲット] > [<解析名>解析] > [高度] > [指定時間後に収集を自動停止 (秒)] チェックボックスとフィールド Advisor CLI アクション:-stop-after=<integer> |
収集を停止 |
All |
GUI 制御: [ワークフロー] ペイン > [解析を停止] コントロールと [サイトカバレージ] ウィジェット Advisor CLI アクションオプション:-command=stop |
手動で収集をポーズ/手動で収集を再開 |
|
収集のポーズ:
収集の再開:
|
プロセスへアタッチ/プロセスからデタッチ |
|
プロセスにアタッチ:
プロセスからデタッチ:
|
次の表は、これらの関連をまとめたものです。詳細については、解析のオーバーヘッドを最小化するループのマークを参照してください。
最小化の手法 |
影響を受けるインテル® Advisor の解析 |
サマリー |
|---|---|---|
ID でループを選択 |
|
GUI 制御: [サーベイレポート] Advisor CLI アクションオプション:-mark-up-list=<string> |
ソースファイル/行でループを選択 |
|
GUI 制御: [サーベイレポート] Advisor CLI アクション:-mark-up-loops とアクションオプション -select=<string> |
基準でループを選択 |
|
Advisor CLI アクション:-mark-up-loops または -collect とアクションオプション-loops=<string> |
次の表は、これらの関連をまとめたものです。詳細については、解析のオーバーヘッドを最小化するフィルター処理を参照してください。
最小化の手法 |
影響を受けるインテル® Advisor の解析 |
サマリー |
|---|---|---|
モジュールのフィルター処理 |
|
GUI 制御: [プロジェクトのプロパティー] > [解析ターゲット] > [<名前> 解析] > [モジュール] オプションとフィールド Advisor CLI アクションオプション:-module-filter-mode=include | exclude および -module-filter=<string> |
次の表は、これらの関連をまとめたものです。詳細については、解析のオーバーヘッドを最小化する実行速度/持続時間/範囲のプロパティーを参照してください。
最小化の手法 |
影響を受けるインテル® Advisor の解析 |
サマリー |
|---|---|---|
オフライン (収集後) からオンライン (収集中) にスタックウォーク・モードを変更 |
サーベイ |
GUI 制御: [プロジェクトのプロパティー] > [解析ターゲット] > [サーベイ・ホットスポット解析] > [高度] > [スタック・アンワインド・モード] > [収集中] Advisor CLI アクションオプション:-stackwalk-mode=online |
スタック収集を無効化 |
|
GUI 制御:
Advisor CLI アクションオプション:-no-stacks (または、CLI アクションのオプション -stacks が advisor コマンドラインで指定されていないことを確認してください) |
スタックのスティッチを無効化 |
サーベイ |
GUI 制御: [プロジェクトのプロパティー] > [解析ターゲット] > [サーベイ・ホットスポット解析] > [高度] > [スタックのスティッチ] チェックボックス Advisor CLI アクションオプション:-no-stack-stitching |
サンプリング間隔を増やします |
サーベイ |
GUI 制御: [プロジェクトのプロパティー] > [解析ターゲット] > [サーベイ・ホットスポット解析] > [高度] > [サンプリング間隔] フィールド Advisor CLI アクションオプション:interval=<integer> |
収集する解析データを制限します |
サーベイ |
GUI 制御: [プロジェクトのプロパティー] > [解析ターゲット] > [サーベイ・ホットスポット解析] > [高度] > [収集データの制限 (MB)] フィールド Advisor CLI アクションオプション:-data-limit=<integer> |
ループの呼び出しカウントを制限します |
|
GUI 制御: [プロジェクトのプロパティー] > [解析ターゲット] > <名前> 解析 > [高度] > [ループの呼び出し回数の制限] フィールド Advisor CLI アクションオプション:-loop-call-count-limit=<integer> |
追加の解析を無効化 |
サーベイ |
GUI 制御: [Project Properties (プロジェクトのプロパティー)] > [Analysis Target (解析ターゲット)] > [Survey Hotspots Analysis (サーベイ・ホットスポット解析)] > [Advanced (高度)] ...
Advisor CLI アクションオプション:
|
次の表は、これらの関連をまとめたものです。詳細については、解析のオーバーヘッドを最小化するその他の手法を参照してください。
最小化の手法 |
影響を受けるインテル® Advisor の解析 |
サマリー |
|---|---|---|
キャッシュ・シミュレーションを無効化 |
|
GUI 制御:
Advisor CLI アクションオプション:-no-enable-cache-simulation |
レポートデータの制限 |
メモリー・アクセス・パターン |
GUI 制御:
Advisor CLI アクションオプション:
|
データセットを最小化 |
すべて、特に:
|
ターゲット・アプリケーションの制御フローパスを広く実行しながら、ループ内で実行される命令数を最小限に抑えます |
GUI で結果を開くまで、ファイナライズを一時的に無効化 |
|
GUI 制御: [Workflow (ワークフロー)] ペイン > ファイナライズ中に [Cancel current analysis (解析をキャンセル)] Advisor CLI アクションオプション:-no-auto-finalize |