我怀疑我们的ActiveMQ连接桥有一个主要的内存泄漏--我们看到了典型的内存泄漏模式(应用程序加载正常,如果长时间运行就会变慢,或者在短时间内一次又一次地重启)。我查找了用于查找Java内存泄漏的现代最佳实践,许多开发人员似乎正在放弃传统的工具,如jhat/jmap,而不是新的(Er) jvisualvm
。
在启动这个工具(并花了几个小时阅读它的教程)后,我能够为CPU和内存拍摄profiler快照。
我只是有点卡在这一点上-我如何分析这些快照来识别泄漏?关于如何使用jvisualvm生成快照的文档有很多,但关于如何真正理解它们的文档却很少。
提前谢谢。
发布于 2012-02-06 14:05:07
使用visualvm分析内存泄漏并非易事。它有一个叫做“采样器”的工具/插件。这可用于对内存或cpu进行采样。您可以定期拍摄快照,并查找可能的泄漏。以下是有关如何使用它的一些细节-可从quick search获得
更有效的方法是获取堆转储(例如,当应用程序速度变慢或OOM happens时)。VisualVM帮助您获取堆转储(使用监视器选项卡上的Heap Dump )
这个文件可以通过MAT进行分析-一些细节可以在How do I analyze a .hprof file?上找到
https://stackoverflow.com/questions/9154785
复制相似问题