今天看到blogjava上有人放消息VisualVm出了,好奇下來玩玩,發(fā)現(xiàn)這玩意出乎意料的真的好。
profile工具用的多了,讓我這么喜歡倒是很少,總結(jié)一下優(yōu)點 。
1. 綠色軟件,不用安裝
我這人出名的懶,最煩裝軟件,起初以為這東西是和jdk捆綁的,看看說明發(fā)現(xiàn)可以獨立下載才來了興趣,下了zip包以后就直接可以運行,也不需要限制特定的jdk版本,1.5后的都可以。對比起來bea的messition control也是監(jiān)控vm的,但是要和eclipse集成就實在麻煩。
2. 使用簡單,不需要做特殊設(shè)置
基本上,啟動visual jvm, 然后再啟動你的java應(yīng)用不管是tomcat還是 swing應(yīng)用,就可以檢測到了進程,再open 就可以看到各種信息了。我在eclipse中啟動一個應(yīng)用也可以順利在local node上找到對應(yīng)的節(jié)點。這樣白癡的用法特別招菜鳥喜歡。
如果需要對應(yīng)用做profile 最好設(shè)置一下啟動參數(shù)-Xshare:off ,不過試驗發(fā)現(xiàn)不設(shè)問題也不大。

監(jiān)控界面分成4部分, Heap, permgen, 線程,class裝載情況。 簡單明了,特別是perm這塊,以前很少有工具注意這個。
3. 可以對監(jiān)控進程做thread dump和 memory dump, 另外也支持對jvm dump文件的進行圖形化的分析和比對。
dump文件是標準的jvm格式, 也就是這工具還可以用來代替其他日志分析工具。

美中不足的是無法象jrobe那樣直觀的反映方法的調(diào)用堆棧。不過也基本夠了。
4. 對線程的圖形化分析特別招人喜歡。
包括gc預(yù)收集線程,一些系統(tǒng)線程,都能清晰的顯示出來,可以方便理解系統(tǒng)的運作情況。懶的截圖了。總之和其他工具比就是直觀很多。
毫不猶豫的又把某些大東西從自己的tool list上刪除了。不過有點疑問,這東西有l(wèi)inux版本么?