有没有可用于跟踪内存使用情况的好工具在tomcat java webapp中?我正在寻找能够按类别或包装分类的东西。
谢谢,J
答案 0 :(得分:5)
我使用Netbeans IDE,它能够分析任何类型的Java项目,包括webapps。在Netbeans中完成项目设置后,只需单击“配置文件”并回答几个简单的问题。
创建新项目并将现有代码导入其中非常容易。
您可以在此处查看此屏幕截图:http://profiler.netbeans.org/
您可以从此处下载Netbeans:http://www.netbeans.org/
VisualVM也可能适合您。还有许多可用的插件。自JDK 6更新7以来,VisualVM一直随JDK一起提供。您可以在此处查看:https://visualvm.dev.java.net/
答案 1 :(得分:3)
jconsole可以为您提供摘要统计信息。我在过去使用它来进行负载测试以推断加载类的大小(通过在加载LOTS对象时注意使用之前和之后)。请注意,在触发垃圾收集之前,使用情况一直持续,因此您将需要考虑计算中的瞬态对象。
答案 2 :(得分:3)
尝试JRockit Mission Control附带的内存泄漏检测程序。它可以显示堆中最常见的类型以及它们的增长程度。
(来源:oracle.com)
您还可以通过运行JROCKIT_HOME \ bin目录中提供的jrmcd命令从命令行获取统计信息。例如,
jrcmd <pid> print_object_summary
会给你
31.8% 3198k 41907 -137k [C
11.9% 1196k 300 +0k [B
11.4% 1151k 49118 +6k java/lang/String
6.1% 612k 5604 +0k java/lang/Class
4.3% 431k 2388 +0k [I
3.5% 353k 15097 +0k java/util/HashMap$Entry
...
可以免费用于开发和评估。