JVisualVM的使用教程
一、前言
JVisualVM是一個Java虛擬機的監控工具,要是需要對JVM的性能進行監控可以使用這個工具哦
使用這個工具,你就可以監控到java虛擬機的gc過程了
那么,這么強大的工具怎么下載呢?
在JDK1.6后的版本是自帶這個工具,它就在你的jdk的bin目錄上
如果是默認安裝的JDK,一般就在C盤,Program Files的java目錄,就會看到你的jdk版本,點進去之后打開bin這個文件夾,就可以看到這個軟件了
二、啟動JVisualVM
啟動方法:
1.進入jdk安裝目錄的bin目錄,雙擊打開這個程序
2.菜單鍵+R,輸入cmd進入命令行模式,輸入命令jvisualvm 啟動程序。注:要是使用命令行啟動的軟件,命令框可不能關閉哦,關閉了的話JVisualVM也會被關閉,切記切記!!!
啟動程序之后進入這個界面,這個就是JVisualVM的使用界面了
三、安裝插件
使用之前,我們需要安裝一個插件,來更好的來觀察虛擬機的性能,點擊上方的工具-插件
在可用插件那里選擇下載,安裝一個VIsual GC的插件
一般會報錯,因為默認的鏈接已經給轉移了,需要在設置那里把默認的鏈接更改
點擊設置,編輯,把URL更改一下
那URL填什么呢?先確定一下自己的jdk版本號,然后用以下鏈接去查看URL
確認版本號,可以菜單鍵+R,執行cmd,輸入java -version來查看自己的版本號
比如我的是201
那就在這個網站:https://visualvm.github.io/pluginscenters.html
找到自己版本號的地址,復制URL到設置那里
比如我的是JDK8的201,所以應該是131-291之間,所以我就復制下面那行藍色的URL到設置的定制器中
然后就可以下載想要的插件啦
然后重啟一下即可看到有visual GC這個選項了
四、使用
那我先執行一個不停止的程序
結果是不停的輸出1,這是個死循環,我們再回去看看GC
第一次觀察
幾秒鐘后觀察
我把這個程序停止掉之后,最后進行觀察,左邊的test這個java程序就不見了,右邊的GC也就停了下來
那現在就開始分析一下這幾個過程,就看最后關掉之后的那個狀態,可以看到GC time是指發生了多少次的GC,圖中就是發生了233次GC,就花了276.256ms的時間,而下一行的Eden區,也是發生了223次GC,花費的時間也是276.256ms,很顯然,發生的GC都是在Eden區,Old老年代區發生了0次GC,花費0s。
這只是個普通的死循環,工作量并不大,所以占用不了多少內存空間,根本就不會發生多少次GC,也根本不需要老年代區GC
而右邊的進度圖,就是說明內存使用的情況,當圖中的色塊達到頂端的時候,就是內存滿的時候,這時候就需要進行一次GC,把內存占用推送到下一個區,滿一次清理一次就GC一次
除了可以檢測java虛擬機的垃圾回收,還可以監視一下該java程序CPU的占用情況,線程等等。
當我們開發其他程序的時候,可能需要對程序做優化,就要結合這些指標來進行分析,確定優化的方法。比如說CPU使用率一直只有很低,那就說明CPU可以利用的內存比較大,可以適當降低其他的消耗,提升CPU損耗來提升效率等等
當然,除了我提及的各種性能監控和GC過程的查看,還有其他的功能可以使用,比如性能風險,觀察各進程的運行情況等等
最后,可能會有小伙伴會問,如果執行的程序不是死循環,而是一個普通的輸出呢。如果執行的是那種執行完畢就會停止的,比如我這里把循環條件去掉,使程序只執行一次后停止
點擊運行之后返回JVisualVM來查看結果,但JVisualVM并沒有顯示這個java進程,或者是一閃而過。這是因為JVisualVM只能實時監控到執行中的java程序,因為改動過的程序執行了輸出之后就結束了,所以JVisualVM根本沒辦法去監控程序的狀態,前面停止之后還能看到,是因為你已經在停止之前打開了這個程序的監控,在點了停止之后,顯示的是停止之前最后一刻的狀態
今天的分享就到此結束了,感覺自己又向前邁了一小步,喜歡本文章的小伙伴可以點個贊或者留個評論支持一下哦
總結
以上是生活随笔為你收集整理的JVisualVM的使用教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【eoe特刊】第二十七期 OpenGL
- 下一篇: jquery在选择器中使用变量及inne