ロックと待機の解析

コンカレンシー解析はアプリケーションが並列でない場所を特定しますが、ロックと待機の解析はプロセッサー使用率が効率的ではない原因を特定します。最も一般的な問題の 1 つは、同期オブジェクトで長時間待機しているスレッドです (ロック)。コアが十分利用されていないときに待機が発生すると、パフォーマンスに影響があります。

ロックと待機の解析は、ユーザーモード・サンプリング/トレース収集を使用します。 解析中に、各同期オブジェクトがアプリケーションに与える影響を予測して、アプリケーションが各同期オブジェクトを (ブロッキング API の場合、スリープやブロッキング I/O を) どの程度待つ必要があるかを把握します。

インテル(R) VTune(TM) Amplifier XE でサポートしている同期オブジェクトのグループは 2 つあります。

1) スレッド間の同期に通常使用されるオブジェト (ミューテックスやセマフォーなど)。

2) I/O 操作の待機に関連するオブジェクト (ストリームなど)。

ロックと待機解析結果は、次のビューポイントで表示できます。

ビューポイント 説明
hotspot 多くの CPU 時間を使用しているコード領域 (hotspots) を特定するのに役立ちます。
Hotspots by CPU Usage (CPU 使用率別 hotspot) 多くの CPU 時間を使用しているコード領域 (hotspots) を特定するのに役立ちます。CPU 時間は CPU 使用率の状態 (idle、poor、fair、good) に分割されます。
Hotspots by Thread Concurrency (スレッドのコンカレンシー別 hotspot) 多くの CPU 時間を使用しているコード領域 (hotspots) を特定するのに役立ちます。CPU 時間はスレッドのコンカレンシーの状態 (idle、poor、fair、good、over) に分割されます。
Locks and Waits (ロックと待機) CPU コアが十分利用されずにスレッドが同期オブジェクト (ロック)、I/O、タイマーで長時間待機しているなど、アプリケーションが利用可能な CPU コアをどのように利用しているかを示して、効率良く活用されていない箇所を特定します。CPU 時間は、待機中の CPU 使用率によって色別に表示されます。

デフォルトでは、インテル(R) VTune(TM) Amplifier XE はロックと待機解析の結果を [Locks and Waits (ロックと待機)] ビューポイントに表示します。

次のステップ

競合が発生しているオブジェクトを特定し、ソースコードに移動して、問題を修正します。待機中にシステムの使用率が低い (赤いバー)、待機時間が長いオブジェクトをチューニングします。並列化、競合の不均衡の是正または軽減を考慮します。実行しているスレッドの数と利用可能なコアの数が等しい場合、理想的な使用率 (緑のバー) になります。

コードを修正した後、比較解析を実行してパフォーマンスの向上の度合いとより向上が見込める箇所を確認します。

関連項目


このヘルプトピックについてのフィードバックを送信
 
インテル(R) ソフトウェア製品ドキュメント・ライブラリー

© 2010 Intel Corporation. 無断での引用、転載を禁じます。