9

我正在使用 Java 7u40 随附的Java Mission Control Profiler,但我无法对其进行配置文件和收集对象统计信息。无论我做什么,我都无法在 Memory -> Object Statistics窗口中看到任何统计信息。

以下命令启动收集:

jcmd <pid> JFR.start duration=60s settings=profile filename=alloc-prof.jfr

Java Mission Control 文档没有提及启用对象分析的任何特定选项。我试图创建自己的个人资料并设置:

  <flag name="heap-statistics-enabled" label="Heap Statistics">true</flag>
  <flag name="allocation-profiling-enabled" label="Allocation Profiling">true</flag>

但仍然没有收集到对象统计信息。

4

1 回答 1

10

使用 Mission Control 中可用的模板管理器。

转到 Windows -> 模板管理器并导入模板并检查堆统计和分配分析,将其导出。完毕!

如果要手动编辑jfc文件,最好知道控制元素内的元素不被JVM读取,即标志元素,JMC使用它们来修改控制元素外的参数(一个具有控制属性)

手动编辑需要您修改这些:

将启用的 java/object_alloc_in_new_TLAB 设置为 true

将 java/object_alloc_outside_TLAB 设置为 true

将启用的 vm/gc/detailed/object_count 设置为 true

注意,有两个对象计数事件,使用 object_count_after_gc 会增加 GC 次数。如果您选择上面的那个,每个记录块您将获得一个额外的 GC(这通常就足够了)

于 2013-09-27T21:52:53.253 回答