VisualVM 是一个集成了一些JDK的命令行工具的可视化的工具,为您提供强大的分析能力。它捆绑了包括jstat , JConsole , jstack , jmap和jinfo,这些工具都您都可以在标准的JDK里找到。

VisualVM可以让您生成和分析堆数据,跟踪内存泄漏,监测垃圾收集器和内存CPU的性能,以及能够浏览和操作MBeans 。虽然VisualVM运行在JDK6上,但它可以监控创建自JDK1.4以上版本的应用程序 。

如果您的jkd没有更新到最新版本,您可以到以下地址下载:

下面这篇文章用Visualvm比较测试了三个java IDE( NetBeans 6.5.1 (JavaSE only version), Eclipse (for Java Developers) and IntelliJ IDEA (8.1.2) )的性能:

本文的VisualVM介绍也是翻译自该文。

VisualVM同时提供IDE插件,可以在IDE中直接使用VisualVM。

Sun还搞了个博客大赛,鼓励大家写博客介绍VisualVM,前三名都有奖励,最高奖励价值500美元,不过要求博客必须是英文写的。

如何启用tomcat的JMX,对远程tomcat进行监控,最简单的方式就是在tomcat的启动脚本里加上:

 

CATALINA_OPTS="-Dcom.sun.management.jmxremote
    -Dcom.sun.management.jmxremote.port=$my.jmx.port
    -Dcom.sun.management.jmxremote.ssl=false
    -Dcom.sun.management.jmxremote.authenticate=false
    -Djava.rmi.server.hostname=$my.jmx.host"

 $my.jmx.port $my.jmx.host这两个变量请根据具体情况替换。

 

如果要设置权限,以及更详细的配置,请参看下面这几篇文章:

下图是本站的VisualVM监控截图: