垃圾收集器的選擇基于不同的需求。根據(jù)吞吐量、延遲和內(nèi)存占用測(cè)量,可以選擇最適合其應(yīng)用程序的GC收集器。參加java培訓(xùn),在短時(shí)間內(nèi)盡快掌握垃圾收集器的相關(guān)知識(shí),有助于你更好地進(jìn)行開(kāi)發(fā)工作。
吞吐量是長(zhǎng)時(shí)間內(nèi)未花費(fèi)在垃圾收集上的總時(shí)間的百分比。吞吐量包括分配所花費(fèi)的時(shí)間(但是,通常不需要調(diào)整分配速度)。例如,如果吞吐量為95%,則表示應(yīng)用程序運(yùn)行時(shí)間的95%和垃圾收集運(yùn)行時(shí)間的5%。對(duì)于任何高負(fù)載業(yè)務(wù)應(yīng)用程序,每個(gè)人都想要高吞吐量。
延遲是應(yīng)用程序的響應(yīng)能力。垃圾收集暫停會(huì)影響應(yīng)用程序的響應(yīng)能力。因此,延遲應(yīng)該盡可能低,以獲得更好的應(yīng)用程序性能。
內(nèi)存占用是進(jìn)程的工作集,以頁(yè)面和緩存線(xiàn)為單位。在物理內(nèi)存有限或進(jìn)程較多的系統(tǒng)上,內(nèi)存占用可能決定可伸縮性。在java培訓(xùn)中,也有關(guān)于內(nèi)存管理和垃圾回收的相關(guān)課程,學(xué)好這些技能和知識(shí),保障程序穩(wěn)定運(yùn)行。
垃圾收集器回收的重點(diǎn)區(qū)域是:Java堆和方法區(qū)。
垃圾收集器在對(duì)對(duì)象進(jìn)行回收之前,需先判斷對(duì)象是“存活”著,還是已經(jīng)“死去”(即不可能再被任何途徑使用的對(duì)象)。垃圾收集器只會(huì)對(duì)那些已經(jīng)“死去”的對(duì)象進(jìn)行回收。常用的判斷對(duì)象是否存活的算法有兩種:引用計(jì)數(shù)算法和根搜索算法。
因此,選擇正確的收集器完全取決于應(yīng)用程序需求。需要明智地選擇應(yīng)用程序的對(duì)象創(chuàng)建,并在具有預(yù)期生產(chǎn)負(fù)載的較低環(huán)境中進(jìn)行適當(dāng)?shù)臏y(cè)試。想學(xué)習(xí)垃圾回收的使用技巧和方法,不妨報(bào)名參加java培訓(xùn),在專(zhuān)業(yè)老師和系統(tǒng)課程的指導(dǎo)教學(xué)下,可以快速提升自己。