Java GC系列(4):垃圾回收监视和分析
轉(zhuǎn)載自? Java GC系列(4):垃圾回收監(jiān)視和分析
在這個(gè)Java GC系列教程中,讓我們學(xué)習(xí)用于垃圾回收監(jiān)視和分析的工具。然后,選用一種工具來監(jiān)視一個(gè)Java示例程序的垃圾回收過程。如果你是一名初學(xué)者,你最好仔細(xì)閱讀該系列教程。你可以從這里(垃圾回收介紹)開始。
Java GC監(jiān)視和分析工具
下面是一些可用的工具,每個(gè)都有自己的優(yōu)勢和缺點(diǎn)。我們可以通過選擇正確的工具并分析,來提升應(yīng)用程序的性能。這篇教程中,我們選用Java VisualVM。
- Java VisualVM
- Naarad
- GCViewer
- IBM Pattern Modeling and Analysis Tool for Java Garbage Collector
- HPjmeter
- IBM Monitoring and Diagnostic Tools for Java-Garbage Collection and Memory
- Visualizer
- Verbose GC Analyzer
Java VisualVM
Java VisualVM使用是免費(fèi)的,其需要安裝Java SE SDK。看一下Java JDK的bin文件夾中(路徑:\Java\jdk1.8.0\bin),這里面有很多javac和java工具,jvisualvm就是其中之一。
Java VisualVM能夠被用于:
- ? 生成并分析堆的內(nèi)存轉(zhuǎn)儲(chǔ);
- ? 在MBeans上觀察并操作;
- ? 監(jiān)視垃圾回收;
- ? 內(nèi)存和CPU性能分析;
1、啟動(dòng)VisualVM
jvisualvm位于JDK bin文件夾下,直接點(diǎn)擊就可以。
在這個(gè)Java GC系列教程中,讓我們學(xué)習(xí)用于垃圾回收監(jiān)視和分析的工具。然后,選用一種工具來監(jiān)視一個(gè)Java示例程序的垃圾回收過程。如果你是一名初學(xué)者,你最好仔細(xì)閱讀該系列教程。你可以從這里(垃圾回收介紹)開始。
Java GC監(jiān)視和分析工具
下面是一些可用的工具,每個(gè)都有自己的優(yōu)勢和缺點(diǎn)。我們可以通過選擇正確的工具并分析,來提升應(yīng)用程序的性能。這篇教程中,我們選用Java VisualVM。
- Java VisualVM
- Naarad
- GCViewer
- IBM Pattern Modeling and Analysis Tool for Java Garbage Collector
- HPjmeter
- IBM Monitoring and Diagnostic Tools for Java-Garbage Collection and Memory
- Visualizer
- Verbose GC Analyzer
Java VisualVM
Java VisualVM使用是免費(fèi)的,其需要安裝Java SE SDK。看一下Java JDK的bin文件夾中(路徑:\Java\jdk1.8.0\bin),這里面有很多javac和java工具,jvisualvm就是其中之一。
Java VisualVM能夠被用于:
- ? 生成并分析堆的內(nèi)存轉(zhuǎn)儲(chǔ);
- ? 在MBeans上觀察并操作;
- ? 監(jiān)視垃圾回收;
- ? 內(nèi)存和CPU性能分析;
1、啟動(dòng)VisualVM
jvisualvm位于JDK bin文件夾下,直接點(diǎn)擊就可以。
2、安裝可視化GC插件
我們需要安裝可視化GC插件,以便在Java GC過程中有良好的視覺感受。
3、監(jiān)視GC
現(xiàn)在,是時(shí)候監(jiān)視垃圾回收進(jìn)程了,開啟你的Java程序,它將自動(dòng)被檢測到并顯示到Java VisualVM界面,左側(cè)“Application”(應(yīng)用程序)窗口下,“Local”(本地節(jié)點(diǎn))下,所有本地運(yùn)行的Java程序都會(huì)被列出。
Java VisualVM是一個(gè)Java應(yīng)用程序,因此它也會(huì)被列在其中,教程的意圖在于使用VisualVM來監(jiān)視它自己的GC進(jìn)程。
雙擊“Local”(本地)下的VisualVM圖標(biāo)。
現(xiàn)在,程序監(jiān)控窗口在右側(cè)打開,這有許多不同關(guān)于應(yīng)用程序性能的相關(guān)監(jiān)視指數(shù)的tab頁,目前為止,我們最感興趣的是“Visual GC”,點(diǎn)擊它。
上面圖片顯示在Old、Eden、S0和S1上空間利用情況,下圖顯示了每部分空間的分配和釋放情況。它按照指定的刷新率保持持續(xù)刷新。
上面圖片所展示的是正常運(yùn)行程序的情況,當(dāng)出現(xiàn)內(nèi)存泄露或者反常的行為時(shí),它會(huì)在圖表中明確的顯示出來。最少我們能理解他是與對象內(nèi)存分配和垃圾回收相關(guān)的事情。隨后,通過其他tab頁(像“Threads”)和Thread Dump的幫助,我們能夠減少這個(gè)問題。
在“Monitor”tab頁中,我們能夠監(jiān)控并定時(shí)展示所有堆內(nèi)存使用情況圖。通過“Perform GC”按鈕可以啟動(dòng)垃圾回收進(jìn)程。
在“Sampler”tab頁中,我們能夠啟動(dòng)內(nèi)存和CPU性能分析,它將顯示詳細(xì)每個(gè)實(shí)例使用的實(shí)時(shí)報(bào)告,它將幫助我們明確性能問題。
這篇教程是我們四篇Java垃圾回收系列教程的最后一篇。
2、安裝可視化GC插件
我們需要安裝可視化GC插件,以便在Java GC過程中有良好的視覺感受。
3、監(jiān)視GC
現(xiàn)在,是時(shí)候監(jiān)視垃圾回收進(jìn)程了,開啟你的Java程序,它將自動(dòng)被檢測到并顯示到Java VisualVM界面,左側(cè)“Application”(應(yīng)用程序)窗口下,“Local”(本地節(jié)點(diǎn))下,所有本地運(yùn)行的Java程序都會(huì)被列出。
Java VisualVM是一個(gè)Java應(yīng)用程序,因此它也會(huì)被列在其中,教程的意圖在于使用VisualVM來監(jiān)視它自己的GC進(jìn)程。
雙擊“Local”(本地)下的VisualVM圖標(biāo)。
現(xiàn)在,程序監(jiān)控窗口在右側(cè)打開,這有許多不同關(guān)于應(yīng)用程序性能的相關(guān)監(jiān)視指數(shù)的tab頁,目前為止,我們最感興趣的是“Visual GC”,點(diǎn)擊它。
上面圖片顯示在Old、Eden、S0和S1上空間利用情況,下圖顯示了每部分空間的分配和釋放情況。它按照指定的刷新率保持持續(xù)刷新。
上面圖片所展示的是正常運(yùn)行程序的情況,當(dāng)出現(xiàn)內(nèi)存泄露或者反常的行為時(shí),它會(huì)在圖表中明確的顯示出來。最少我們能理解他是與對象內(nèi)存分配和垃圾回收相關(guān)的事情。隨后,通過其他tab頁(像“Threads”)和Thread Dump的幫助,我們能夠減少這個(gè)問題。
在“Monitor”tab頁中,我們能夠監(jiān)控并定時(shí)展示所有堆內(nèi)存使用情況圖。通過“Perform GC”按鈕可以啟動(dòng)垃圾回收進(jìn)程。
在“Sampler”tab頁中,我們能夠啟動(dòng)內(nèi)存和CPU性能分析,它將顯示詳細(xì)每個(gè)實(shí)例使用的實(shí)時(shí)報(bào)告,它將幫助我們明確性能問題。
這篇教程是我們四篇Java垃圾回收系列教程的最后一篇。
總結(jié)
以上是生活随笔為你收集整理的Java GC系列(4):垃圾回收监视和分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 消息称台积电将下调今年资本支出,降至 3
- 下一篇: Java数据库连接池--DBCP浅析