我正在使用Java 7u40 附带的新 Java Mission Control Profiler,我无法进行配置文件分配和收集对象统计信息.无论我做什么,我都无法在Memory - > Object Statistics窗口中看到任何统计信息.
以下命令启动集合:
jcmd <pid> JFR.start duration=60s settings=profile filename=alloc-prof.jfr
Run Code Online (Sandbox Code Playgroud)
在Java的Mission Control文档中没有提到任何具体的选项,以使物体轮廓.我试图创建自己的个人资料并设置:
<flag name="heap-statistics-enabled" label="Heap Statistics">true</flag>
<flag name="allocation-profiling-enabled" label="Allocation Profiling">true</flag>
Run Code Online (Sandbox Code Playgroud)
但仍然没有收集对象统计信息.
我们有一个运行Java 5的长期运行的服务器应用程序,并对其进行分析,我们可以看到老一代随着时间的推移缓慢增长.它在完整的GC上正确释放,但我希望能够使用堆转储查看Eclipse MAT中无法访问的对象.我已成功使用+ XX:HeapDumpOnCtrlBreak获取堆转储,但JVM在转储堆之前始终执行GC.显然这不会发生在Java 6上,但我们现在仍然坚持使用5.有什么方法可以防止这种情况吗?