インテル® VTune™ Amplifier 2018 ヘルプ
ネイティブまたは Python* ターゲットのメモリー消費解析で収集されたデータを調査し、最もメモリーを消費するオブジェクトを特定して、スタックとソースでのそれらの割り当てを解析します。
[Summary (サマリー)] ウィンドウで、メモリーを消費するオブジェクトの上位リストを表示します。例えば次の foo - test.py:5 オブジェクトは、高いメモリー消費メトリックを示し、最適化の候補であることが分かります。
さらに詳しく調査するには、[Bottom-up (ボトムアップ)] タブに切り替えて時間経過におけるメモリー消費分配を確認します。[Timeline (タイムライン)] ペインのピーク値に注目し、調査する時間範囲を選択して右クリックして、[Filter In by Selection (選択でフィルターイン)] コンテキスト・メニューからこの範囲で実行されたプログラム・ユニット (関数、モジュール、プロセスなど) をフィルター処理します。
上記の例では、Python* の test モジュールでは 922,194,472 バイトのメモリーが割り当てられていることが、右にある [Call Stack (コールスタック)] ペインの呼び出しツリーから分かりますが、解放されているのは 824,714,480 バイトのみです。これは、潜在的なメモリーリークを示す最大割り当て/解放のデルタ値です。関数 foo を [Call Stack] ペインでクリックすると、ソース表示が開いて最大メモリーを割り当てているコード行がハイライトされます。この情報を基にメモリーリークの原因を特定するため、さらに詳細なコード解析を行います。