针对Java的堆分析工具的建议?

rip*_*234 55 java memory heap profiling

列出您最喜欢的堆分析工具(例如jprofiler,jmap,...).让我们为每个答案保留一个工具,并列出每个工具的优缺点.

dpa*_*nas 49

Eclipse内存分析器http://www.eclipse.org/mat/


tra*_*god 28

Java VisualVM,jvisualvm,包含在JDK中.这里检查病理性Swing程序.

  • 在Mac OS X上,请参阅[*jvisualvm去哪了?*](http://stackoverflow.com/q/13312229/230513) (2认同)

nan*_*nda 24

YourKit:http://www.yourkit.com/

优点:

  • 界面干净,速度快
  • 它打开了一个大型的5-g堆转储,其中jProfiler停止了.而且它只需要1-2演出的JVM ram.

缺点: 当然......它不是免费的:(


小智 5

BHeapSampler http://dr-brenschede.de/bheapsampler/

  • 生成一个类级别的堆图,作为主导内存结构的直观显示
  • 可以处理非常大的堆转储
  • 命令行工具,可在服务器端使用,无需将转储转移到开发人员的桌面

  • 封闭的源代码并使用aa()混淆抛出一个奇怪的异常.看起来这个工具不起作用. (4认同)