溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎樣進(jìn)行Java垃圾回收機(jī)制的原理分析

發(fā)布時(shí)間:2022-01-11 16:35:22 來源:億速云 閱讀:102 作者:柒染 欄目:編程語(yǔ)言

本篇文章為大家展示了怎樣進(jìn)行Java垃圾回收機(jī)制的原理分析,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

Java垃圾回收監(jiān)控和分析工具

Java VisualVM

Java VisualVM是在Java SE SDK安裝時(shí)免費(fèi)提供的。看下你的Java  JDK安裝目錄下的/bin目錄,Javajdk1.8.0bin。此目錄下有許多其他工具包括javac和java工具,jvisualvm就是其中一個(gè)。

Java  VisualVM對(duì)運(yùn)行中的Java應(yīng)用提供了可視化的信息展示。它是很多工具的整合包,像工具JConsole,jstat,jinfo,jstack以及jmap現(xiàn)在都是Java  VisualVM的一部分。

Java VisualVM可以用來 - 生成和分析堆內(nèi)存的dump - 觀察和操作MBeans - 監(jiān)控垃圾回收 - 內(nèi)存和CPU性能分析

Launch VisualVM

jvisualvm已經(jīng)包含在了JDK的bin目錄下,如果以設(shè)置環(huán)境變量path,則可以直接在命令行中運(yùn)行jvisualvm,將出現(xiàn)如下啟動(dòng)界面

怎樣進(jìn)行Java垃圾回收機(jī)制的原理分析

怎樣進(jìn)行Java垃圾回收機(jī)制的原理分析

安裝Visual GC插件

我們需要安裝visual GC 插件才能有個(gè)堆Java  GC線程的漂亮和有價(jià)值的視覺感受。在上面的啟動(dòng)界面中點(diǎn)擊工具->插件->可用插件->Visual GC

(不知道什么原因,這張圖片就是上傳不成功,只有附上外鏈地址將就看了,抱歉)

安裝。

監(jiān)控GC

現(xiàn)在可以監(jiān)控垃圾回收過程了。開啟你的Java應(yīng)用程序,Java  VisualVM會(huì)自動(dòng)檢測(cè)并將其顯示到界面上。在左邊“應(yīng)用程序”面板的“本地”節(jié)點(diǎn)下面,所有本地運(yùn)行的Java應(yīng)用都會(huì)被列舉出來。

Java VisualVM自己本身也是一個(gè)Java應(yīng)用程序,因此它自身也被列了出來。作為本文的目的我們將監(jiān)控VisualVM應(yīng)用本身的GC過程。

雙擊“本地”節(jié)點(diǎn)下的VisualVM圖標(biāo)。

怎樣進(jìn)行Java垃圾回收機(jī)制的原理分析

這樣應(yīng)用程序的監(jiān)控面板會(huì)在右邊打開。面板上有多個(gè)標(biāo)簽,每個(gè)里面展示了與應(yīng)用程序性能相關(guān)的方面。由于我們現(xiàn)在主要關(guān)注“Visual  GC”,so,點(diǎn)之。

怎樣進(jìn)行Java垃圾回收機(jī)制的原理分析

上面的圖片顯示了Old,Eden,S0,S1使用的內(nèi)存空間。下面的圖表顯示了各個(gè)部分申請(qǐng)和釋放內(nèi)存的詳細(xì)信息。它以設(shè)定的刷新頻率不停地跟新。

怎樣進(jìn)行Java垃圾回收機(jī)制的原理分析

上圖顯示的是一個(gè)正常運(yùn)行的程序。當(dāng)發(fā)生內(nèi)存泄露或者不正常的操作時(shí),可以從圖形本身明顯地看出來。至少我們可以知道程序中存在和對(duì)象內(nèi)存分配和垃圾回收相關(guān)的問題。然后利用其他標(biāo)簽如“Threads”中提供的信息和Thread  Dump我們可以縮小發(fā)生問題的范圍。

在“監(jiān)視”標(biāo)簽中,我們可以看到以時(shí)間線發(fā)展的內(nèi)存使用概況圖。這里有個(gè)“執(zhí)行垃圾回收”按鈕可以調(diào)用垃圾回收過程。

怎樣進(jìn)行Java垃圾回收機(jī)制的原理分析

在“抽樣器”標(biāo)簽中我們可以開始內(nèi)存和CPU分析工作。抽樣器會(huì)實(shí)時(shí)顯示各個(gè)實(shí)例的使用情況。它可以幫助確定性能問題到底發(fā)生在哪里。

怎樣進(jìn)行Java垃圾回收機(jī)制的原理分析

上述內(nèi)容就是怎樣進(jìn)行Java垃圾回收機(jī)制的原理分析,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI