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

How to enable Object Statistics in JFR?

我正在用 filghtrecorder 测试我的 Java 代码,所有其他数据都很好(它们显示某事),但 "Memory -> Object Statistics" 是空的。

使用 JDK 1.8.0_161

这是我使用的参数。

java -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:StartFlightRecording=dumponexit=true,filename=4.jfr,settings=default -jar myapp.jar

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

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

您可能会在 JMC UI 中看到,该页面需要 'Object Count' 事件。 制作您自己的设置版本,例如通过复制 JDK/jre/lib/jfr/profile.jfc 文件并在本节中将 enabled 更改为 true。

      <setting name="enabled" control="heap-statistics-enabled">false</setting>
      <setting name="period">everyChunk</setting>
    </event>

您也可以使用 JMC UI 创建一个新的设置文件,单击开始飞行记录向导中的模板管理器按钮。

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