Java Mission Control Heap Profile

半世苍凉 提交于 2019-11-27 16:29:23

问题


I am playing with the new Java Mission Control Profiler that is coming with the Java 7u40 and I cannot make it to profile allocation and collect object statistics. No matter what I do, I cannot see any statistics in the Memory -> Object Statistics window.

The following command starts the collection:

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

The Java Mission Control documentation does not mention any specific options to enable object profiling. I have tried to create my own profile and set :

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

But still no Object Statistics are collected.


回答1:


Use the template manager that is available in Mission Control.

Go to Windows -> Template Manager and import the template and check Heap Statistics and Allocation Profiling, export it. Done!

If you want to edit the jfc-file manually, it can be good to know elements inside the control-element are not read by the JVM, i.e flag-element, They are used by JMC to modify the parameters outside the control element (the one with the control attribute)

A manual edit requires that you modify these:

set java/object_alloc_in_new_TLAB enabled to true

set java/object_alloc_outside_TLAB enabled to true

set vm/gc/detailed/object_count enabled to true

Note, there are two object count events, with object_count_after_gc you will increase GC times. If you pick the one above instead, you will get one additional GC per recording chunk (which is usually sufficient)



来源:https://stackoverflow.com/questions/19056826/java-mission-control-heap-profile

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!