ヒープダンプ 【heap dump】

概要

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

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

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

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

(2024.6.30更新)