Z atkritumu savācējs (ZGC) un Shenandoah atkritumu savācējs (GC) ir gan moderni, zema latentuma atkritumu savācēji, kas izstrādāti, lai samazinātu lietojumprogrammas pauzes laiku un uzlabotu caurlaidspēju Java lietojumprogrammās. Katram no tiem ir galvenie lietošanas gadījumi un stiprās puses, pamatojoties uz to arhitektūras plāniem un darbības īpašībām.
ZGC lietošanas gadījumi:
ZGC ir mērogojams, zema latentuma atkritumu savācējs, kas paredzēts gandrīz visiem atkritumu savākšanas darbiem vienlaikus ar lietojumprogrammu izpildi. Tā rezultātā tiek iegūts ārkārtīgi īss pauzes laiks, parasti zem milisekundēm, kas nav atkarīgs no kaudzes lieluma. ZGC var apstrādāt kaudzes izmērus, sākot no dažiem simtiem megabaitu līdz vairākiem terabaitiem (līdz 16 TB). Tās pamatprojekts padara to piemērotu lietojumprogrammām, kurām nepieciešams paredzams un minimāls pauzes laiks, pat ja kaudzes izmērs pieaug.
Tipiski ZGC lietošanas gadījumi ietver:
-Lietojumprogrammas ar lielām atmiņas prasībām, piemēram, lielo datu apstrādi, atmiņas datu bāzēm un liela mēroga kešatmiņas sistēmas.
-Latentuma jutīgas lietojumprogrammas, kurās paredzamība un reakcija ir kritiska, piemēram, augstfrekvences tirdzniecības (HFT) sistēmas un reālā laika analītika.
- Pakalpojumi, kuriem jāsaglabā vienmērīga caurlaidspēja bez gariem GC pauzes smailēm, piemēram, mikropakalpojumiem lielās sadalītās sistēmās.
- Vide, kur minimālā lietojumprogrammas pārtraukšanas laiki samazina traucējumus interaktīvās vai uz lietotāju vērstās lietojumprogrammās.
ZGC paaudžu variants vēl vairāk uzlabo CPU efektivitāti un caurlaidspēju, sadalot kaudzi jaunās un vecās paaudzēs, ļaujot biežāk skenēt un efektīvi veicināt ilgstošu objektu. Šī paaudžu pieeja, kas ieviesta jaunākajās Java versijās, ir īpaši piemērota lietojumprogrammām, kas rada daudzus īslaicīgus objektus un kurai nepieciešama ilgstoša zema latentuma izturēšanās augstā vienlaicīgumā.
Shenandoah GC lietošanas gadījumi:
Shenandoah GC ir arī vienlaicīgs, zemas pauzes atkritumu savācējs, kura mērķis ir samazināt pauzes laiku atkritumu savākšanas laikā, vienlaikus veicot sablīvēšanos vienlaikus ar lietojumprogrammas pavedieniem. Tas samazina latentuma tapas un kavē garo stop-the-world pauzes, kas ir kopīgas tradicionālajos GCS.
Tipiski lietošanas gadījumi Shenandoah GC ietver:
- Lietojumprogrammas ar nepieciešamību pēc konsekventa zema latentuma reakcijas laikiem un minimālas GC pauzes.
- Vidēja vai liela kaudzes lietojumprogrammas, kur satraucoši satrauc, jo Shenandoah agresīvi kompaktas, lai pārvaldītu sadrumstalotību.
- Lietojumprogrammas, kas gūst labumu no vienlaicīgas sablīvēšanās, bez īpašu rādītāja krāsošanas un barjeru mehānismu sarežģītības kā ZGC.
-Scenāriji, jo īpaši Java 21 vai vēlāk, kad eksperimentālais paaudžu Šenando GC uzlabo caurlaidspēju un uzlabo slodzes izturību atmiņā smagā vidē.
Veiktspējas un piemērotības apsvērumi:
- ZGC ir paredzēts, lai efektīvi mērogotu ļoti lielus kaudzes izmērus (vairākuterabaitu), saglabājot konsekventu pauzes laiku, kas lielākoties neietekmē kaudzes paplašināšanai. Tas padara to piemērotu lielas atmiņas lietojumprogrammām, piemēram, lieliem datiem un plašiem kešatmiņas saglabāšanas slāņiem.
- Shenandoah izceļas ar scenārijiem ar vidējiem kaudzes izmēriem, parādot labāku caurlaidspēju nekā ZGC mērenā RAM lietošanas apstākļos. Tas uzlabo atmiņas izmantošanu ar agresīvu sablīvēšanos un ir piemērots lietojumprogrammām, kurās prioritāte tiek noteikta ilgstošai caurlaidspējai.
-Abi kolekcionāri uzlabo Java konkurētspēju īpaši zemu latentuma prasībām, kas raksturīgas finanšu tirdzniecībai, telekomunikācijām, spēļu un reālā laika analītikā.
- ZGC izmantošana progresīvas metodes, piemēram, krāsainas norādes un slodzes barjeras, ļauj ļoti efektīvi vienlaicīgi marķēt un pārvietot objektu, veicinot tā spēju samazināt pauzes laiku.
- Shenandoah galvenā priekšrocība slēpjas tās vienlaicīgajā sablīvēšanās stratēģijā, samazinot atmiņas sadrumstalotību un nodrošinot paredzamu latentumu ar zemu pauzes laiku.
Atšķirīgo lietošanas gadījumu kopsavilkums:
- ZGC bieži tiek dots priekšroka ārkārtīgi lielām kaudzēm un lietojumprogrammām, kur ir vissvarīgākais ir paredzams latentums, kas nav atkarīgs no kaudzes lieluma; Tas ir piemērots lietošanas gadījumiem liela mēroga datu platformās un latentuma kritiskajās sistēmās.
- Shenandoah tiek izvēlēts lietojumprogrammām, kurām nepieciešami konsekventi zemas pauzes laiki, koncentrējoties uz atmiņas sablīvēšanos, lai samazinātu sadrumstalotību, lietošanas gadījumus pielāgot vidējā vai lielām kaudzes sistēmām ar dažādiem objekta dzīves ilgumiem, piemēram, datu bāzēm un reālā laika sistēmām, kas gūst labumu no paaudžu savākšanas uzlabojumiem.