Oracle JDK の Java Flight Recorder(JFR) のダンプファイルを Java Mission Control(JMC) で開いて分析してると重いので、小さく分割する方法を調べてたら、id:yamadamn さんに教えていただいたのでメモ。分割したら画面の応答が速くなり、快適に分析できるようになりました。
@chiroito @yoheia 分割するのって、こっちじゃないです? https://t.co/5pK6lfuwUr
— Takahiro YAMADA (@yamadamn) 2017年1月2日
インストール
- http://hirt.se/downloads/oracle/split.jar をダウンロードする。
- JFR のダンプファイルと同じ場所に split.jar を置く*1。
書式
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 のダンプファイルと同じ場所でなくても、任意のフォルダに保存して実行時にパスを指定すればよい