この記事は、インテル® デベロッパー・ゾーンに公開されている「Reducing overload when using basic hotspots analysis」(https://software.intel.com/en-us/blogs/2015/01/29/reducing-overload-when-using-basic-hotspots-analysis) の日本語参考訳です。
問題:
大規模 (で複雑) なアプリケーションをインテル® VTune™ Amplifier XE の基本ホットスポット (Basic hotspots) モードで解析すると、インテル® VTune™ Amplifier XE がプロファイル結果を生成するまで一時間以上かかることがあります。プロファイルのファイナライズ中はシステムがフリーズしたかのように見えます。基本ホットスポットを使用せずに、アプリケーションを短時間 (例えば数分) 実行します。
次に例を示します:
“amplxe-cl -collect hotspots -target-pid 23779 -duration 300 -r r001hs”
原因:
データ収集がすぐに終了しても収集した生データの処理に時間かかり、その大部分がデータのスタックウォークのファイナライズに費やされているためです。
解決方法:
次のようにコールスタック情報なしでデータを収集します:
“amplxe-cl -collect-with runss -knob cpu-samples-mode=nostack -target-pid 23779 -duration 300 -r r002hs”
その他の方法として、収集時間を短くしたり、サンプル数を減らすため SAV 値を大きくする、また Pause/Resume API を使用して収集を制御するなどがあります。しかし、収集からスタックウォークを無くすのが、オーバーヘッドを減らす最善策です。