jdk自帶程式監控工具——JVisualVm
阿新 • • 發佈:2020-10-21
前言
通過我之前的文章《JVM堆記憶體模型概括》、《java垃圾回收機制概括》、《JVM怎樣判斷是垃圾物件進行垃圾回收》、《eclipse怎麼設定堆記憶體大小》大家可以大概知道JVM的記憶體模型、JVM的垃圾回收機制、JVM對垃圾物件的判斷方法、以及使用eclipse怎樣進行堆記憶體大小的調整,當我們大概知道這些後就可以自己嘗試著寫一個小Demo來模擬大量業務物件的生成,然後再對JVM進行調優來實驗JVM調優後到底有沒有效果,那麼我們怎樣看有沒有效果呢?這裡我們就需要用到一個jdk自帶的工具了,下面我來講解一下工具怎麼用。
JVisualVm
這個工具叫JVisualVm,我們cmd在命令列直接輸入jvisualvm然後回車就可以開啟該工具。
當彈出該視窗的時候證明成功開啟,這個時候我們不要急著看工具裡面都有什麼功能,這個時候我們先執行一段程式碼然後通過程式碼來學習該工具,我們執行如下程式碼。
這段程式碼其實就是用一個while死迴圈將新new的student物件add到一個List裡面,這樣的話List相當於GCRoot根節點(在《JVM怎樣判斷是垃圾物件進行垃圾回收》一文中有講什麼是GCRoot根)這個時候所有new出來的student物件都被List進行add操作了,所以所有的物件都是一直存活物件,這個時候之前的工具我們可以看到多了一個Main方法。
我們雙擊開啟它然後點選監視可以看到cpu和堆的使用情況
這個時候我們可以看到堆的大小再一直變大,已使用的堆也在一直變大,之前的
這個JVisualVm工具是jdk自帶的,只要電腦安裝配置了jdk就可以使用,非常的方便,當我們在自己電腦上執行程式發現特別慢的時候我們可以直接開啟JVisualVm來檢視堆記憶體的一個使用情況,當然JVisualVm不止這一個功能,接下來我會講一下怎麼分析dump日誌,希望大家多多關注、共同進步。