ablog

不器用で落着きのない技術者のメモ

Oracle JDK の JFR のダンプファイルを小さく分割する方法

Oracle JDKJava Flight Recorder(JFR) のダンプファイルを Java Mission Control(JMC) で開いて分析してると重いので、小さく分割する方法を調べてたら、id:yamadamn さんに教えていただいたのでメモ。分割したら画面の応答が速くなり、快適に分析できるようになりました。

インストール

書式

java -jar split.jar JFRのダンプファイル名 分割サイズ(デフォルト50MB)

実行例

> java -jar .\split.jar 2016_12_31_23_59_59.jfr 5
Examining recording 2016_12_31_23_59_59.jfr ...
Found 8 chunks.
Average chunk size: 10.9 MiB
Target size: 5 MiB
Chunk aligned target size: 10.9 MiB
The recording will be split into 8 files with at most 1 chunks per file.
Writing ... \2016_12_31_23_59_590.jfr ... finished!
Writing ... \2016_12_31_23_59_591.jfr ... finished!
Writing ... \2016_12_31_23_59_592.jfr ... finished!
Writing ... \2016_12_31_23_59_593.jfr ... finished!
Writing ... \2016_12_31_23_59_594.jfr ... finished!
Writing ... \2016_12_31_23_59_595.jfr ... finished!
Writing ... \2016_12_31_23_59_596.jfr ... finished!
Writing ... \2016_12_31_23_59_597.jfr ... finished!

実行結果

> dir

2017/01/03  08:05    <DIR>          .
2017/01/03  08:05    <DIR>          ..
2016/12/21  13:01        91,288,687 2016_12_31_23_59_59.jfr ★元ファイル(87MB)
2017/01/03  08:05        14,693,074 2016_12_31_23_59_590.jfr ★↓分割されたファイル(14MB)
2017/01/03  08:05        14,320,595 2016_12_31_23_59_591.jfr
2017/01/03  08:05        14,320,706 2016_12_31_23_59_592.jfr
2017/01/03  08:05        14,452,690 2016_12_31_23_59_593.jfr
2017/01/03  08:05        14,608,565 2016_12_31_23_59_594.jfr
2017/01/03  08:05        14,769,525 2016_12_31_23_59_595.jfr
2017/01/03  08:05         3,789,594 2016_12_31_23_59_596.jfr
2017/01/03  08:05           333,938 2016_12_31_23_59_597.jfr
2017/01/03  07:08             9,311 split.jar ★分割プログラム

*1:JFR のダンプファイルと同じ場所でなくても、任意のフォルダに保存して実行時にパスを指定すればよい