如何在 Java 中分析对象创建?

eli*_*ner 5 java performance garbage-collection

我使用的系统正在创建大量对象并一直对它们进行垃圾收集,这会导致堆消耗的锯齿状图形非常陡峭。我想知道正在生成哪些对象来调整代码,但我无法找到在垃圾收集开始时转储堆的方法。当我尝试随机通过 JConsole 手动启动 dumpHeap 时,我总是在 GC 完成运行后得到结果,并且没有得到任何有用的数据。

欢迎任何有关如何追踪过多临时对象创建的注释。

rhu*_*rhu 1

看看 BTrace 可以做什么(http://kenai.com/projects/btrace/pages/Home),或者尝试jvisualvm在 JDK 6u18 中使用它进行实时内存采样。