我收到了一堆多个 JFR 文件进行分析,比如 170 ,并且一个一个打开需要很长时间,我可以将它们放在一个文件中,从我只有文件并且我无法配置的事实开始JVM 并再次获取 JFR。例如
- 2020_03_30_20_37_01_2333_0.jfr
- 2020_03_30_21_37_01_2333_0.jfr
- 2020_03_30_22_37_01_2333_0.jfr
2020_03_30_23_37_01_2333_0.jfr
. . .
- ñ
从 11.06 或更高版本开始,您可以使用位于 JDK_HOME/bin 中的“jfr”工具。
$ jfr assemble <repository> <file>
其中repository是文件所在的目录,file是要创建的录制文件 (.jfr) 的名称。
录制文件只是块文件的串联,因此您也可以在 shell 中执行此操作。例如,在 Windows 中使用复制 /b 命令
$ copy /b 1.jfr + 2.jfr + 3.jfr combined.jfr
这是 windows powershell 中用于连接 JFR 文件的脚本,只需注意最终连接文件的大小,它可能太大,在这种情况下,您可能希望减少要连接的文件
$Location = ""
$outputConcatenatedJFR = "all_2333_1.jfr"
$items = Get-ChildItem -Path . -Filter *2333_1.jfr | Sort-Object -Property Name
New-Item $outputConcatenatedJFR -ItemType file
ForEach ($item in $items) {
Write-Host "Processing file - " $item
cmd /c copy /b $outputConcatenatedJFR+$item $outputConcatenatedJFR
}