ヒープダンプ【heap dump】

概要

ヒープダンプとは、Javaプログラムの実行環境であるJava仮想マシンJVM)のヒープ領域の内容を丸ごとファイルに写し取ったもの。エラーの原因調査などに用いられる。
ヒープダンプのイメージ画像

JVMJavaプログラムを実行する際、コンピュータメインメモリ上にヒープheap)と呼ばれる領域を確保し、その中にプログラム中で必要になる変数やオブジェクトインスタンスなどを格納していく。

ヒープダンプはプログラム実行中のJVMのある瞬間のヒープ領域の内容をそのまま丸ごと外部に出力したもので、米オラクルOracle)社標準のJVMの場合は拡張子「.hprof」のファイルバイナリ形式で保存される。Java VisualVMのような実行環境を使えば、プログラムを実行しながらヒープの状態を表示することもできる。

ヒープダンプのファイル出力は、JVMの起動時にエラーで実行が中断されたらヒープダンプを出力するようオプションで指定するか、jmapなどのツールを用いて実行中のJVMから取得することができる。得られたダンプファイルを解析する「Memory Analyzer」などのツールも提供されており、ファイルを解析して含まれるインスタンスやその階層構造、メモリリークが疑われる箇所などを表示してくれる。

(2024.6.30更新)