当我使用 Epsilon GC 时,我无法使用 Flight Recorder
When I use Epsilon GC, I cannot use Flight Recorder
我是运行这个命令
java -cp "D:\Dev\Books Spaces\Java-11-and-12-New-Features-master\Chapter09" -XX:StartFlightRecording,filename=Epsilon.jfr -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC exploring_further/TestFlightRecorder
代码运行,但 .jfr 文件为 0 字节。
当我删除 -XX:+UseEpsilonGC
和 Java 默认为 G1 GC。代码运行,飞行记录器将所有数据转储到文件,我可以读取它。
为什么当我使用 Epsilon 时文件是空的,我该如何修复它。
在 JDK 14 Windows 10.
我无法在 Oracle JDK 14.02 (Windows) 上重现。
文件大小为零,直到记录被转储,这发生在 JVM 退出时(通常),因此您需要等待。
如果应用程序因为OutOfMemoryError而结束,则无法保证记录,如果发生,则可能是紧急记录(可能缺少信息),并使用前缀hs_oom_pid创建.
我在代码为 运行 时点击 Ctrl+C
来修复它。 .jfr 文件已填充,因此我可以阅读它。如果我等待 OutOfMemoryError 文件仍然是 0 字节。
我是运行这个命令
java -cp "D:\Dev\Books Spaces\Java-11-and-12-New-Features-master\Chapter09" -XX:StartFlightRecording,filename=Epsilon.jfr -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC exploring_further/TestFlightRecorder
代码运行,但 .jfr 文件为 0 字节。
当我删除 -XX:+UseEpsilonGC
和 Java 默认为 G1 GC。代码运行,飞行记录器将所有数据转储到文件,我可以读取它。
为什么当我使用 Epsilon 时文件是空的,我该如何修复它。
在 JDK 14 Windows 10.
我无法在 Oracle JDK 14.02 (Windows) 上重现。
文件大小为零,直到记录被转储,这发生在 JVM 退出时(通常),因此您需要等待。
如果应用程序因为OutOfMemoryError而结束,则无法保证记录,如果发生,则可能是紧急记录(可能缺少信息),并使用前缀hs_oom_pid创建.
我在代码为 运行 时点击 Ctrl+C
来修复它。 .jfr 文件已填充,因此我可以阅读它。如果我等待 OutOfMemoryError 文件仍然是 0 字节。