繁体   English   中英

当我使用 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 字节。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM