Pagrindiniai Shenandoah ir ZGC naudojimo atvejai yra šie:
Shenandoah GC:
1. Mažas delsos laikas: „Shenandoah“ sukurtas taip, kad sumažintų pauzės laiką, nes daugumą šiukšlių surinkimo darbų atlieka kartu su programa. Tai užtikrina, kad programa išliks reaguojanti ir gerai veiktų net ir naudojant daug atminties.
2. Didelis pralaidumas: „Shenandoah“ sukurtas taip, kad būtų užtikrintas didelis pralaidumas, sumažinant šiukšlių surinkimo laiką. Tai užtikrina, kad programa gali toliau efektyviai veikti net ir naudojant daug atminties.
3. Didelės krūvos: „Shenandoah“ sukurta efektyviai tvarkyti dideles krūvas, todėl tinka programoms, kurioms reikia daug atminties.
4. Nuolatinis paskirstymas: „Shenandoah“ tinka programoms su nuolatiniu objektų paskirstymu ir naudojimu, nes gali efektyviai tai atlikti.
5. Senesni objektai: „Shenandoah“ tinka programoms, kuriose objektai yra senesni, o naujų objektų kūrimo išlaidos yra nedidelės, nes ji gali efektyviai tai tvarkyti.
6. Konteinerio naudojimas: Shenandoah gali būti naudojamas konteinerių aplinkoje, tačiau tai priklauso nuo konkretaus naudojimo atvejo.
ZGC:
1. Mažas delsos laikas: ZGC sukurtas taip, kad sumažintų pauzės laiką, nes daugumą šiukšlių surinkimo darbų atlieka kartu su programa. Tai užtikrina, kad programa išliks reaguojanti ir gerai veiktų net ir naudojant daug atminties.
2. Didelis pralaidumas: ZGC sukurtas taip, kad būtų užtikrintas didelis pralaidumas, sumažinant šiukšlių surinkimo laiką. Tai užtikrina, kad programa gali toliau efektyviai veikti net ir naudojant daug atminties.
3. Didelės krūvos: ZGC sukurtas efektyviai tvarkyti dideles krūvas, todėl tinka programoms, kurioms reikia daug atminties.
4. NUMA-Aware: ZGC sukurtas taip, kad žinotų NUMA, o tai reiškia, kad jis gali efektyviai valdyti dideles krūvas ir kelis procesoriaus branduolius.
5. Eksperimentinė funkcija: ZGC yra eksperimentinė funkcija, kuriai įjungti reikia specialių komandinės eilutės parinkčių. Jis tinka programoms, kurioms reikalingas labai trumpas pauzės laikas ir kurios gali apdoroti didelius atminties paskirstymus.
Apibendrinant galima pasakyti, kad tiek Shenandoah, tiek ZGC yra sukurti taip, kad būtų užtikrintas mažas delsimas ir didelis pralaidumas, todėl jie tinka programoms, kurioms reikalingas efektyvus atminties valdymas.
Citatos:[1] https://www.opsian.com/blog/aleksey-shipilev-shenandoah-concurrent-gcs/
[2] https://clojure-goes-fast.com/blog/shenandoah-in-production/
[3] https://wiki.openjdk.org/display/shenandoah/Main
[4] https://www.diva-portal.org/smash/get/diva2:1466940/FULLTEXT01.pdf
[5] https://developers.redhat.com/articles/2024/05/28/beginners-guide-shenandoah-garbage-collector