- blogs:
- cles::blog
2021/06/23

任意のタイミングで Java アプリケーションの HeapDump を取る

Java 11 からは hprof がなくなってしまったので、OOM の時以外の任意のタイミングで*1ヒープの内容を簡単にするダンプ方法を調べてみました。
どうやら、HotSpotDiagnosticMXBean
*2を直接呼出すしかないようです。
メソッドとして実装するとこんな感じでしょうか。
public static void dumpHeap(String filePath) throws IOException {
Files.deleteIfExists(Paths.get(filePath));
MBeanServer server = ManagementFactory.getPlatformMBeanServer();
HotSpotDiagnosticMXBean mxBean;
mxBean = ManagementFactory.newPlatformMXBeanProxy(server, "com.sun.management:type=HotSpotDiagnostic", HotSpotDiagnosticMXBean.class);
mxBean.dumpHeap(filePath, false);
}
† 参考
- *1: OOM の時のダンプは起動時に
-XX:+HeapDumpOnOutOfMemoryError
オプションをつければできる。 - *2: HotSpotDiagnosticMXBean (Java SE 11 & JDK 11 )
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/12552
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
サイト内検索
検索ワードランキング
へぇが多いエントリ
- nmcli で NIC が所属するゾー... (2)
- 居酒屋 八(ひらく) (1)
- びっくりドンキー 大宮公園店 (1)
- Windows 10 で勝手にログアウ... (1)
閲覧数が多いエントリ
1 . Solr-rubyで複数のドキュメントを一括Post(32971)
2 . Windows 10 で勝手にログアウトされないようにする(30856)
3 . Word で数式がグレーアウトされていて挿入できないときは(26457)
4 . リモートデスクトップで Alt + PrtSc と同じことをするには(21961)
5 . Visual Studio 2017/2019 で scanf() がエラー(C4996)になるときは(21307)
2 . Windows 10 で勝手にログアウトされないようにする(30856)
3 . Word で数式がグレーアウトされていて挿入できないときは(26457)
4 . リモートデスクトップで Alt + PrtSc と同じことをするには(21961)
5 . Visual Studio 2017/2019 で scanf() がエラー(C4996)になるときは(21307)
cles::blogについて
Referrers