今天看到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版本么?