如何在 JFR 中启用对象统计?

Zha*_*nlu 4 java jfr

我正在使用 filghtrecorder 测试我的 Java 代码,所有其他数据都显示良好(它们显示……),但“内存 - > 对象统计”为空。

使用 JDK 1.8.0_161

这是我使用的参数。

java -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:StartFlightRecording=dumponexit=true,filename=4.jfr,settings=default -jar myapp.jar
Run Code Online (Sandbox Code Playgroud)

我尝试将设置更改为“settings=profile”,但没有帮助。(不知道有什么不同)

我想知道为什么默认情况下它没有启用,或者它已启用但没有值得记录的对象?

Kla*_*ara 12

正如您可能在 JMC UI 中看到的那样,该页面需要“对象计数”事件。制作您自己的设置版本,例如通过复制 JDK/jre/lib/jfr/profile.jfc 文件并将本节中的 enabled 更改为 true。

      <setting name="enabled" control="heap-statistics-enabled">false</setting>
      <setting name="period">everyChunk</setting>
    </event>
Run Code Online (Sandbox Code Playgroud)

您还可以使用 JMC UI 创建新的设置文件,单击“启动飞行记录”向导中的“模板管理器”按钮。

要么将新文件保存在 JDK/jre/lib/jfr/ 中,然后您就可以settings=mynewsettings在命令行中使用,或者将其保存在其他地方并使用settings=<fullpathtomynewsettingsfile>.