說明:這篇文章來翻譯來自於Javapapers 的Java Garbage Collection Monitoring and Analysijava
在這個系列的Java垃圾回收教程中,咱們將看到可用於垃圾回收監控和分析的工具。而後使用一個工具去監控用於舉例的java程序的垃圾回收過程。若是你是一個新人,你最好通讀這個系列的教程。你能夠從Java垃圾回收的介紹開始。工具
下面是幾個可用的工具。它們每個都有本身的優點和劣勢。經過選擇合適的工具和使用有組織的方式來分析咱們能夠提高程序的表現力。在這個教程中咱們將使用Java VisualVM插件
Java VisualVM能夠經過JavaSE SDK的安裝中免費獲取。看一下你的JDK的安裝的可執行二進制文件夾,路徑是\Java\jdk1.8.0\bin
。和javac和java工具一塊兒還有其餘不少可以使用的工具。jvisualvm
只是他們其中的一個。翻譯
Java VisualVM 提供了一個可視化的接口用來展現關於正在運行的java程序的信息。它是一個將不少工具綁定成的工具。像JConsole、jstat、jinfo、jstack、jmap這些工具如今都是Java VisualVM的一部分了。code
Java VisualVM可以用於orm
jvisual
可以在JDK的安裝目錄中找到。
對象
爲了有一個更棒的視覺感覺關於Java GC 過程,咱們須要安裝一個Visual GC 插件教程
如今咱們能夠監控垃圾回收過程了。開啓你的Java程序,而後它能夠自動被發現而且被展現在Java VisualVM界面中。在Local
節點的下面的左邊的Application
面板中,全部的本地運行的java程序都會被列舉出來。接口
Java VisualVM是一個java程序並且它也會被顯示在裏面。爲了教程的目的,咱們將監控VisualVM 程序自己。進程
雙擊Local
節點的下面的VisualVM圖標。
如今程序的監控面板已經在右邊被打開了。那邊有不一樣的標籤頁去顯示和程序相關的不一樣的監控部分。咱們如今的注意力點在Visual GC
,點擊它吧,
在上面的圖片中,展現了內存區中Old、S0、S1的利用率。在下面的圖中,顯示了每段智能的分配和回收內存。它以定義好的頻率來刷新。
上面的圖表示的是一個程序正常的狀況。若是存在內存泄露或者其餘不正常的狀況,它將明顯的進行回收操做。咱們至少能夠知道有一個問題和對象內存的分配和來及回收有關。在其餘的標籤頁像Threads
和Thead DUmp的幫助下,咱們能夠減小這種問題。
在Monitor
標籤頁中,咱們可以經過一個時間序列圖來監控堆內存的利用率。咱們可以經過Perform GC
按鈕來初始化垃圾回收進程。
在Sampler
標籤頁中,咱們可以開啓內存和CPU分析進程,它將詳細的展現每一個實例的利用率。它能夠幫助去明確表現出來的問題。
伴隨着這部分教程,咱們系列教程已經來到了尾聲。