我在一个体面的Java项目中遇到了一些内存管理问题。业务逻辑是一个很长的故事,但足以说它运行w / JVM设置为8 gig堆,所以它相当重。我已经四处寻找关于分析工具的一些帮助,并且对这个主题有所了解,但我不是专家。我需要的东西可以管理一个非常强壮的大小堆,而不是让我的机器到它的膝盖。我尝试过已经附带Java的VisualVM,它非常非常慢,并且经常会崩溃。我正在使用的机器非常强劲,更新的i7和16GB内存,所以看起来HW不是我的问题。
是否有任何堆分析工具可以帮助我解决这个问题?
答案 0 :(得分:1)
VisualVM可能很慢/崩溃的原因是因为它按需执行所有操作并且堆非常大。您可以尝试像Eclipse MAT(http://www.eclipse.org/mat/)之类的东西,它可以预先扫描/索引堆,而不是一直试图保持按需扫描。我以前使用eclipse MAT来处理大堆,它似乎不是一个问题。
如果Eclipse MAT无法解决您的问题,您可以尝试Yourkit(http://www.yourkit.com),这是凯迪拉克解决方案,它不是免费的。单个许可证大约100美元,如果需要,可以提供更多支持。
答案 1 :(得分:1)
你可以试试jconsole。它是jdk的一部分。