您好,歡迎來到賦能網(wǎng)!

Java學(xué)習(xí)下垃圾收集器有哪些?

賦能網(wǎng) 2023-05-11 59


       java虛擬機(jī)規(guī)范中對垃圾收集器應(yīng)該如何實(shí)現(xiàn)并沒有任何規(guī)定,不同的版本和不同的收集群可以針對不同的場景需要,最新的并不意味就是最好的,有時(shí)候在架構(gòu)和業(yè)務(wù)層面考慮,可以根據(jù)需要進(jìn)行配置。接下來介紹垃圾收集器的分類,方便你了解怎么為項(xiàng)目選擇合適的垃圾收集器。

1.串行垃圾收集器

      串行垃圾收集器使用單個(gè)線程來執(zhí)行所有垃圾收集工作,這使得它相對高效,因?yàn)榫€程之間沒有通信開銷。它最適合于單處理器機(jī)器,因?yàn)樗荒芾枚嗵幚砥饔布?,盡管它在多處理器上對具有小數(shù)據(jù)集的應(yīng)用程序很有用。

      串行垃圾收集器在某些硬件和操作系統(tǒng)配置上默認(rèn)選擇,或者可以使用選項(xiàng)-XX:+UseSerialGC顯式啟用。串行GC將是不具有低暫停要求且在非常小的堆大小上工作的應(yīng)用程序的最佳選擇。

2.并行垃圾收集器
       并行垃圾收集器也稱為吞吐量收集器,是與串行垃圾收集器類似的分代收集器。串行垃圾收集器和并行收集器之間的主要區(qū)別在于并行收集器具有多個(gè)線程,用于加速垃圾收集。并行垃圾收集器適用于具有在多處理器或多線程硬件上運(yùn)行的中型到大型數(shù)據(jù)集的應(yīng)用程序。您可以使用-XX:+UseParallelGC選項(xiàng)啟用它。
       并行壓縮是一種使并行垃圾收集器能夠并行執(zhí)行主要收集的功能。在沒有并行壓縮的情況下,主要收集是使用單個(gè)線程執(zhí)行的,這會極大地限制可伸縮性。如果已指定選項(xiàng)-XX:+UseParallelGC,則默認(rèn)情況下啟用并行壓縮。您可以使用-XX:-UseParallelOldGC選項(xiàng)禁用它。并行垃圾收集器將是吞吐量比延遲更重要的最佳選擇。在可以接受長暫停的情況下,可以使用并行垃圾收集器,例如批量數(shù)據(jù)處理或批處理作業(yè)。
3.并發(fā)垃圾收集器
       并發(fā)標(biāo)記掃描(CMS)收集器和垃圾優(yōu)先(G1)垃圾收集器是兩個(gè)主要并發(fā)的收集器。這些收集器與應(yīng)用程序并行執(zhí)行一些昂貴的工作,因此它們大多被稱為并發(fā)收集器。
4.CMS收集器
       CMS收集器在需要低垃圾收集暫停的應(yīng)用程序環(huán)境中是首選的,并且可以在應(yīng)用程序運(yùn)行時(shí)與垃圾收集器共享處理器資源。當(dāng)應(yīng)用程序中的長壽命世代較高時(shí),或者在有兩個(gè)或多個(gè)處理器的機(jī)器上運(yùn)行時(shí),此收集器基本上提供了更多的好處。CMS收集器可以通過選項(xiàng)-XX:+UseConMarkSweepGC啟用。CMS收集器在JDK 9中不再受歡迎,建議使用垃圾優(yōu)先(G1)收集器。
5.G1垃圾收集器
       G1是用于具有大量內(nèi)存的多處理器機(jī)器的服務(wù)器樣式收集器。它以很高的概率滿足垃圾收集暫停時(shí)間目標(biāo),同時(shí)在不需要配置的情況下實(shí)現(xiàn)高吞吐量。默認(rèn)情況下,在某些硬件和操作系統(tǒng)配置上選擇G1,或者可以使用-XX:+UseG1GC顯式啟用G1。G1主要通過疏散來回收空間:在要收集的選定內(nèi)存區(qū)域中找到的活動對象被復(fù)制到新的內(nèi)存區(qū)域,并在此過程中進(jìn)行壓縮。疏散完成后,先前由活動對象占用的空間將被應(yīng)用程序重新分配。

       對于高級語言來講,因?yàn)椴粩嗟膭?chuàng)建對象,如果不清理,遲早內(nèi)存會滿。所以需要清理不要的垃圾。了解這些垃圾收集器的特性有助于你為開發(fā)項(xiàng)目選擇合適的垃圾收集器,保障程序正常運(yùn)行。

  想了解更多相關(guān)資訊請關(guān)注java培訓(xùn)頻道-查看更多,了解相關(guān)專業(yè)課程信息您可在線咨詢也可免費(fèi)申請?jiān)囌n。關(guān)注賦能網(wǎng)了解更多:4008-569-579

本文鏈接:

本文章“Java學(xué)習(xí)下垃圾收集器有哪些?”已幫助 59 人

免責(zé)聲明:本信息由用戶發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識產(chǎn)權(quán)侵權(quán)的法律責(zé)任!

本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓(xùn)機(jī)構(gòu)》培訓(xùn)課程》學(xué)習(xí)資訊》課程優(yōu)惠》課程開班》學(xué)校地址等機(jī)構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細(xì)解答:
咨詢熱線:4008-569-579

如果本頁不是您要找的課程,您也可以百度查找一下: