Oracle® Solaris Studio 12.4: IDE クイックスタートチュートリアル

印刷ビューの終了

更新: 2014 年 10 月
 
 

メモリー使用状況の調査

「メモリー使用」インジケータには、プロジェクト実行時のメモリーヒープの経時変化が表示されます。これは、プログラム内で不要になったメモリーの開放に失敗した場所をポイントする、メモリーリークの特定に使用できます。メモリーリークは、プログラムのメモリー消費が増加する原因となります。メモリーリークが発生しているプログラムの実行時間が長くなると、結果的に使用できるメモリーが不足する場合があります。

  1. 「実行モニター」の時間スライダを左右に動かし、時間中にメモリーヒープが増減する様子を確認します。ProfilingDemo_1 ではスパイクが 4 回発生しています。最初の 2 回は Sequential Demo 中に発生し、3 回目は Parallel Demo 中に発生し、最後は Pthread Mutex Demo 中に発生しています。

  2. 「メモリーリーク」ボタンをクリックし、「メモリーリークの詳細」ウィンドウを表示します。メモリーリークを示している関数に関する詳細情報が表示されます。メモリーリークが発生している関数だけが、表の中に一覧表示されます。ボタンをクリックした時にプログラムが実行中の場合は、ボタンをクリックした時点で存在していたリークの場所が表示されます。時間が経過するとメモリーリークが増加する可能性があるため、「リフレッシュ」ボタンをクリックします。実行の終了時までメモリーリークが検出されなかった場合は、「メモリーリーク詳細 (Memory Leak Detail)」タブにメモリーリークが見つからなかったことが示されます。

  3. 開始時間と終了時間を変更してデータをフィルタリングしたり、「CPU 使用状況の調査」セクションと同様に「実行モニター」ウィンドウでオレンジ色の詳細スライダを使用できます。この例ではメモリーリークは発生していません。

    image:「メモリーリークの詳細」ウィンドウ (検出された問題なし)。
  4. 関数をダブルクリックすると、対応するファイルが開き、関数でメモリーリークが発生している行が表示されます。メモリーリークメトリックがソースエディタの左側のマージンに表示されます。

  5. CPU 使用率のメトリックの場合と同様に、マウスカーソルをメトリックに合わせて、詳細を表示します。

  6. 表内のメトリックを右クリックし、表内のデータにフィルタを適用します。表内のデータへのフィルタの適用は、すべてのプロファイリングツールで可能です。