2008-12-21 66 views

回答

5

我使用Netbeans IDE,它可以分析任何类型的Java项目,包括webapps。一旦您在Netbeans中完成项目设置,您只需点击Profile并回答一些简单的问题。

创建一个新项目并将现有代码导入它是非常容易的。

你可以在这里看到的这个画面:http://profiler.netbeans.org/

你可以从这里下载Netbeans的:http://www.netbeans.org/

VisualVM的也可能为你工作。还有一些可用的插件。自从JDK 6更新版本7以来,VisualVM一直在使用JDK。您可以在这里查看:https://visualvm.dev.java.net/

3

jconsole可以给你汇总统计。我在过去一直使用它来加载测试来推断加载类的大小(通过在加载对象的LOTS时注意使用前后的使用情况)。请注意,使用情况持续上升,直到触发垃圾回收为止,所以您将需要考虑计算中的瞬态对象。

3

尝试使用JRockit Mission Control附带的内存泄漏检测器。它可以显示堆中最常见的类型以及它们的增长程度。

alt text http://download.oracle.com/docs/cd/E11035_01/jrockit/intro/wwimages/memleak2.gif

您还可以通过运行jrmcd命令可用在JROCKIT_HOME \ bin目录中获得通过命令行的统计数据。例如,

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 
... 

它是免费使用的开发和评估。