如果尚未听说过VisualVm,可以去看看
VisualVM是监视您Java/J2EE应用程序性能最好的免费工具之一。如果您尝试使用MyEclipse的VisualVM,你将不得不从30美元的基本许可证升级!但是,如果按照下文所述的步骤,将解释如何免费实现该目的。
没有多少人用它,但它肯定对你更深入的了解您的应用(程序)和定位问题域有所帮助。我们的目标是确定应用的内存异常并查明原因。
在本文章中,将讨论有关VisualVM在Eclipse的配置以及如何监视应用。将启动一个Web应用并运行visualVM监测该应用。
1.VisualVM是什么
Java管理扩展(JMX)已经自JDK 5.0起成为Java的有机组成部分。JMX使得开发者可获取JVM的所有相关信息。VisualVM信息是一个可视化工具,与一些JDK的命令行工具相集成,提供强大的分析能力。VisualVM使用JMX和为您提供有关JVM内存、CPU使用率、垃圾回收的详细信息;也可以专为本地JVM的中对象对 CPU和内存的使用提供建议。
更多信息详见。
2.安装VisualVM
Visualvm与JDK安装包捆绑(自JDK1.6 update7始)。另外,您可以访问下载VisualVM。
安装完毕,进入<安装目录>/bin并点击visualvm.exe,将启动VisualVM。
3.配置Tomcat
由于将要分析Web应用,需配置Tomcat来配合VisualVM运行,要加入一些参数以使用Tomcat的JMX。
在catalina.bat(或catalina.sh)中修改Java_OPTS(以Tomcat 6.0.16为例):
-Dcom.sun.management.jmxremote =true
-Dcom.sun.management.jmxremote.port=909
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
JAVA_OPTS如同下述:
Set JAVA_OPTS=%JAVA_OPTS%-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=“%CATALINA_BASE%\conf\logging.properties” -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
4.VisualVM连接Tomcat
启动Tomcat以及VisualVM。在VisualVM中,选择本地(local)或远程(remote)(方式)。如Tomcat与VisualVM在同一台计算机上运行,单击本地(local),并设置参数。
图:VisualVM连接到Tomcat
5.在Eclipse中使用VisualVM
图:Eclipse中的VisualVM
6.问题识别
VisualVM启动后,可窥视应用内发生的事情,并识别问题的根源、堆大小和连接池等。
下图是用Visual VM监视的应用(程序)信息。