我正在使用Java 7u40附带的新 Java Mission Control Profiler,我无法进行配置文件分配和收集对象统计信息。无论我做什么,我都看不到记忆中的任何统计数据 - > 对象统计窗口。
以下命令启动集合:
jcmd <pid> JFR.start duration=60s settings=profile filename=alloc-prof.jfr
Java Mission Control documentation未提及启用对象分析的任何特定选项。我试图创建自己的个人资料并设置:
<flag name="heap-statistics-enabled" label="Heap Statistics">true</flag>
<flag name="allocation-profiling-enabled" label="Allocation Profiling">true</flag>
但仍然没有收集对象统计数据。
答案 0 :(得分:10)
使用Mission Control中提供的模板管理器。
转到Windows - &gt;模板管理器并导入模板并检查堆统计和分配概要分析,将其导出。完成!
如果你想手动编辑jfc文件,最好知道JVM没有读取control-element里面的元素,即flag-element,它们被JMC用来修改控件之外的参数element(具有control属性的那个)
手动编辑需要您修改这些:
将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(这通常就足够了)