スレッド化解析は、非効率なプロセッサー利用率の原因を特定して、アプリケーションが並列化されていない場所を見つけるのに役立ちます。スレッドが長時間同期オブジェクト (ロック) を待機するのは、最も一般的な問題の 1 つです。コアが十分に利用されず待機が発生すると、パフォーマンスは影響を受けます。
スレッド化解析は、インテル® VTune™ プロファイラーで使用されていた [並行性解析] と [ロックと待機解析] タイプを組み合わせた、新しい解析タイプです。
スレッド化解析は、ユーザーモード・サンプリングとトレース収集を使用します。この解析により、アプリケーションで使用するそれぞれの同期オブジェクトの影響を検証し、アプリケーションが同期オブジェクトや (スリープやブロック化 I/O などの) ブロック化 API で待機している時間を理解できます。
インテル® VTune™ プロファイラーによってサポートされる同期オブジェクトには 2 つのグループがあります。
ミューテックスやセマフォーなど、スレッド間の同期に使用されるオブジェクト
ストリームなど I/O 操作の待機に関連するオブジェクト
vtune -collect threading [-knob <knobName=knobValue>] [--] <target>
Knob: sampling-interval
スレッド化解析で利用可能な knob (設定オプション) に関する最新情報は次のように取得できます。
vtune -help collect threading
この例は、Linux* 上で myApplication アプリケーションのスレッド化解析を実行する方法を示します。
vtune -collect threading -- /home/test/myApplication
データの収集が完了したら、次のいずれかの方法で結果を表示します。
コマンドラインからデータを表示するには、-report アクションを使用します。
-report-output アクションを使用して、レポートを .txt または .csv ファイルに書き込みます。
インテル® VTune™ プロファイラーのグラフィカル・インターフェイスで、収集した結果データ (*.vtune) を開きます。