„Z“ šiukšlių surinkėjas (ZGC) ir „Shenandoah“ šiukšlių surinkėjas (GC) yra modernūs, mažai latentinių šiukšlių kolektoriai, skirti sumažinti taikymo pauzių laiką ir pagerinti „Java“ programų pralaidumą. Kiekvienas iš jų turi pagrindinius naudojimo atvejus ir stipriąsias puses, atsižvelgiant į jų architektūrinius dizainus ir eksploatavimo charakteristikas.
ZGC naudojimo atvejai:
„ZGC“ yra keičiamas, mažai latentinių šiukšlių rinkėjas, skirtas atlikti beveik visus šiukšlių rinkimo darbus kartu su programos vykdymu. Tai lemia labai trumpą pauzės laiką, paprastai esant milisekundei, kurie nepriklauso nuo krūvos dydžio. ZGC gali valdyti krūvos dydžius nuo kelių šimtų megabaitų iki kelių terabaitų (iki 16 TB). Dėl pagrindinio jo dizaino jis tinka pritaikymams, kuriems reikalingas nuspėjamas ir minimalus pauzių laikas, net ir didėjant krūvos dydžiui.
Tipiški ZGC naudojimo atvejai yra šie:
-Programos, turinčios didelius atminties reikalavimus, tokias kaip „Big Data“ apdorojimas, atminties duomenų bazės ir didelio masto talpyklos kaupimo sistemos.
-Latentinis jautrias programas, kai kritiniai nuspėjamumai ir reagavimas, pavyzdžiui, prekybos aukšto dažnio prekybos (HFT) sistemos ir realaus laiko analizė.
- Paslaugos, kurioms reikia išlaikyti stabilų pralaidumą be ilgų GC pristabdymo smaigalių, tokių kaip mikro paslaugos didelėse paskirstytose sistemose.
- Aplinka, kurioje minimalus programų laikas sumažina interaktyvių ar vartotojo programų sutrikimus.
ZGC kartų variantas dar labiau pagerina CPU efektyvumą ir pralaidumą, padalijant krūvą į jaunas ir senas kartas, leisdamas dažniau nuskaityti ir efektyviai skatinti ilgalaikius objektus. Šis kartų požiūris, pristatytas naujesnėse „Java“ versijose, yra ypač tinkamas programoms, sukuriančioms daugybę trumpalaikių objektų ir reikalaujant nuolatinio mažo vėlavimo elgesio esant dideliam sutapimui.
„Shenandoah GC“ naudojimo atvejai:
„Shenandoah GC“ taip pat yra tuo pat metu vykstantis mažos prielaidos šiukšlių surinkėjas, kurio tikslas-sumažinti pauzės laiką šiukšlių rinkimo metu, atliekant sutankinimą kartu su programų gijomis. Tai sumažina latencijos smaigalius ir sukelia ilgą pasaulį sustojimą, įprastą tradiciniuose GC.
Tipiški „Shenandoah GC“ naudojimo atvejai:
- Programos, kurioms reikia pastovaus mažo latentinio reagavimo laiko ir minimalių GC pauzių.
- Vidutinės ir didelės krūvos pritaikymai, kai suskaidymas kelia susirūpinimą, nes Shenandoah agresyviai kompakuoja, kad galėtų valdyti suskaidymą.
- Programos, kurioms naudinga tuo pačiu metu tankinant, be specifinių rodyklių dažymo ir barjerų mechanizmų, kaip ZGC, sudėtingumo.
-Scenarijai, ypač „Java 21“ ar vėliau, kai eksperimentinis kartų „Shenandoah GC“ padidina pralaidumą ir pagerina apkrovos atsparumą atsparumui sunkioje atminties aplinkoje.
Našumo ir tinkamumo aspektai:
- ZGC yra skirtas efektyviai suskirstyti į labai didelius krūvos dydžius (daugiakampius), išlaikant nuoseklų pauzių laiką, kurio dažniausiai nepaveikia krūvos išplėtimas. Dėl to jis tinka didelėms atminties programoms, tokioms kaip „Big Data“ ir išsamios talpyklos sluoksnių.
- „Shenandoah“ pasižymi scenarijais, kurių dydis yra vidutinio dydžio, ir rodo geresnį pralaidumą nei ZGC, esant vidutinio sunkumo RAM naudojimo sąlygoms. Tai pagerina atminties panaudojimą agresyviai tankinant ir yra tinkamas pritaikymui, kai prioritetas yra teikiamas nuolatiniam pralaidumui.
-Abu kolekcionieriai pagerina „Java“ konkurencingumą dėl ypač mažų latentinių reikalavimų, būdingų finansinei prekybai, telekomunikacijoms, žaidimams ir realaus laiko analizei.
- ZGC naudojami pažangūs metodai, tokie kaip spalvotos rodyklės ir apkrovos barjerai, leidžia labai efektyviai tuo pačiu metu žymėti ir perkelti objektus, prisidedant prie jo sugebėjimo sumažinti pauzės laiką.
- Pagrindinis „Shenandoah“ pranašumas slypi jo lygiagrečioje tankinimo strategijoje, sumažinant atminties suskaidymą ir numatomo latencijos suteikimą su mažu pauzės laiku.
Išskirtinio naudojimo atvejų santrauka:
- „ZGC“ dažnai teikiama pirmenybė ypač didelėms krūvoms ir pritaikymams, kai svarbiausia yra nuspėjamas latentinis latentinis latencija; Tai tinka naudoti atvejus didelio masto duomenų platformose ir latentinės kritinėse sistemose.
- „Shenandoah“ pasirinktas programoms, kurioms reikalingas nuoseklus mažas pauzių laikas, daugiausia dėmesio skiriant atminties sutankinimui, siekiant sumažinti fragmentaciją, pritaikant naudojimo atvejus vidutinėse ar didelėse krūvos sistemose su įvairiais objektų gyvenimo laikotarpiais, tokiomis kaip duomenų bazės ir realaus laiko sistemos, kurioms naudingi kartų kolekcijos patobulinimai.