今天看到blogjava上有人放消息VisualVm出了,好奇下来玩玩,发现这玩意出乎意料的真的好。
profile工具用的多了,让我这么喜欢倒是很少,总结一下优点 。
1. 绿色软件,不用安装
我这人出名的懒,最烦装软件,起初以为这东西是和jdk捆绑的,看看说明发现可以独立下载才来了兴趣,下了zip包以后就直接可以运行,也不需要限制特定的jdk版本,1.5后的都可以。对比起来bea的messition control也是监控vm的,但是要和eclipse集成就实在麻烦。
2. 使用简单,不需要做特殊设置
基本上,启动visual jvm, 然后再启动你的java应用不管是tomcat还是 swing应用,就可以检测到了进程,再open 就可以看到各种信息了。我在eclipse中启动一个应用也可以顺利在local node上找到对应的节点。这样白痴的用法特别招菜鸟喜欢。
如果需要对应用做profile 最好设置一下启动参数-Xshare:off ,不过试验发现不设问题也不大。
监控界面分成4部分, Heap, permgen, 线程,class装载情况。 简单明了,特别是perm这块,以前很少有工具注意这个。
3. 可以对监控进程做thread dump和 memory dump, 另外也支持对jvm dump文件的进行图形化的分析和比对。
dump文件是标准的jvm格式, 也就是这工具还可以用来代替其他日志分析工具。
美中不足的是无法象jrobe那样直观的反映方法的调用堆栈。不过也基本够了。
4. 对线程的图形化分析特别招人喜欢。
包括gc预收集线程,一些系统线程,都能清晰的显示出来,可以方便理解系统的运作情况。懒的截图了。总之和其他工具比就是直观很多。
毫不犹豫的又把某些大东西从自己的tool list上删除了。不过有点疑问,这东西有linux版本么?