垃圾回收在應(yīng)用程序性能中起著關(guān)鍵作用,因?yàn)樗鼤?huì)由于不正確的調(diào)優(yōu)而影響不可預(yù)測(cè)性。如果頻繁發(fā)生GC事件,導(dǎo)致垃圾收集器忙于執(zhí)行GC操作,并導(dǎo)致應(yīng)用程序服務(wù)器上的CPU使用率較高,則會(huì)導(dǎo)致應(yīng)用程序處理不良。參加java培訓(xùn),可以幫助你更好地了解垃圾回收相關(guān)問題,提高代碼質(zhì)量。
如果垃圾回收發(fā)生得太頻繁或占CPU的很大比例,則應(yīng)增加Java堆大小設(shè)置,或在應(yīng)用程序中查找不必要地分配內(nèi)存的位置。
由于堆內(nèi)存配置不足或應(yīng)用程序中存在內(nèi)存泄漏,可能會(huì)發(fā)生過多的垃圾回收,這需要在發(fā)布期間生成heapdump來進(jìn)一步檢查。
為了獲得更好的系統(tǒng)性能,必須有很少的完整GC事件,GC暫停應(yīng)該是最小的,并且用于垃圾回收的CPU百分比應(yīng)該非常低。
建議你在開發(fā)環(huán)境中對(duì)應(yīng)用程序進(jìn)行負(fù)載測(cè)試,以確定最大堆內(nèi)存使用量。你的生產(chǎn)堆大小應(yīng)至少比測(cè)試的最大值高25%-30%,以便為開銷留出空間。在java培訓(xùn)中,會(huì)有關(guān)于垃圾回收的處理方法和技巧的課程,學(xué)好這些技巧,有助于更好地進(jìn)行開發(fā)項(xiàng)目,少出問題。
通用GC配置和參數(shù)
-Xms:設(shè)置堆的最小和初始大小(以字節(jié)為單位)
-Xmx:指定堆的最大大小(以字節(jié)為單位)
-Xmn:在分代收集器中為年輕一代(托兒所)設(shè)置堆的初始大小和最大大小(字節(jié))
-XX:PermSize:設(shè)置分配給永久生成的空間(以字節(jié)為單位),如果超出該空間,將觸發(fā)垃圾回收。此選項(xiàng)在JDK
8中被棄用,并被-XX:metaspaceSize選項(xiàng)取代。
對(duì)于服務(wù)器部署,-Xms和-Xmx通常設(shè)置為相同的值,以便堆大小是固定的并預(yù)先分配。
java語言顯著的特點(diǎn)就是引入了java回收機(jī)制,是c++程序員最頭疼的內(nèi)存管理的問題迎刃而解,這樣一來,我們?cè)陂_發(fā)的過程中就不必考慮內(nèi)存管理。垃圾回收可以有效的防止內(nèi)存泄露,有效的使用空閑的內(nèi)存。想深入了解關(guān)于java垃圾回收的問題,可以報(bào)名參加java培訓(xùn),學(xué)習(xí)更多的內(nèi)存管理技巧,寫出高質(zhì)量和已與維護(hù)的代碼!