IAm*_*aja 23 java profiling memory-leaks jvisualvm
我怀疑我们的ActiveMQ连接桥有一个主要的内存泄漏 - 我们看到典型的内存泄漏模式(应用程序加载正常,如果长时间运行或在短时间内一次又一次地重新启动,则会减慢速度) .我查找了用于查找Java内存泄漏的现代最佳实践,许多开发人员似乎放弃了传统工具,如jhat/jmap,而不是新的(呃)jvisualvm.
在启动此工具(并花了几个小时阅读其教程)后,我可以为CPU和内存获取分析器快照.
我只是在这一点上陷入困境 - 如何分析这些快照来识别泄漏?关于如何使用jvisualvm来生成快照,有很多关于如何使用jvisualvm生成快照的文档,但很少有关于如何真正理解它们的文档.
提前致谢.
Jay*_*yan 27
使用visualvm分析内存泄漏并不容易.它有一个名为'sampler'的工具/插件.这可以用于采样内存或CPU.您可以定期拍摄快照并查找可能的泄漏.以下是有关如何使用它的一些细节 - 从快速搜索获得
更有效的方法是获取堆转储(例如,当应用程序减速或OOM发生时).VisualVM帮助您获取heapdump(在Monitor选项卡上使用Heap Dump)
此文件可以通过MAT进行分析- 有关详细信息,请参阅 如何分析.hprof文件?和http://memoryanalyzer.blogspot.in/