【问题标题】:Java Flight Recorder - no Live ObjectsJava Flight Recorder - 没有活动对象
【发布时间】:2021-04-11 03:05:21
【问题描述】:

我在 JDK 1.8_261 上运行 JFR。

我正在使用这些 VM 选项运行我的应用程序:

-XX:+UseG1GC -XX:+UnlockCommercialFeatures -XX:+FlightRecorder
-XX:FlightRecorderOptions=maxage=5h,defaultrecording=true,loglevel=info,dumponexit=true,
settings=/usr/java/jdk1.8.0_261-amd64/jre/lib/jfr/profile.jfc,dumponexitpath=/tmp/a.jfr

这是我正在使用的profile.jfc 文件:https://gist.github.com/oripwk/e7d598f90e567a658cd767b16379f281

但是,如屏幕截图所示,使用 JDK Mission Control 打开文件时,我看不到 Live Objects。

我需要做什么才能启用动态对象?

【问题讨论】:

  • 我遇到了这个问题,你能解释一下如何启用这个选项吗?

标签: java profiling jmc jfr java-mission-control


【解决方案1】:

Live 对象 (vm/gc/detailed/object_count) 的事件在默认情况下被禁用,因为开销是堆的完整扫描。您可以通过转到 JMC 中的 Window -> Template Manager 并检查“Heap Statistics”并导出设置文件来解决此问题。

或者您可以手动编辑 .jfc 文件并将启用的 vm/gc/detailed/object_count 设置为 true。

【讨论】:

    【解决方案2】:

    要使用该页面,您需要一个 JFR 记录,其中包含“旧对象样本”方法并在启用“GC 根路径”选项的情况下转储。这是因为该页面显示的引用链需要在全局安全点操作中生成,因此仅在需要时才收集它们(通常有很短的时间限制)。

    更多信息可以在here找到。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-27
      • 1970-01-01
      • 1970-01-01
      • 2019-04-27
      相关资源
      最近更新 更多