A Shenandoah és a ZGC fő használati esetei a következők:
Shenandoah GC:
1. Alacsony késleltetés: A Shenandoah-t úgy tervezték, hogy minimálisra csökkentse a szünetidőket, mivel a legtöbb szemétszállítási munkát az alkalmazással egyidejűleg végzi. Ez biztosítja, hogy az alkalmazás érzékeny maradjon, és még nagy memóriahasználat mellett is jól működjön.
2. Nagy áteresztőképesség: A Shenandoah-t úgy tervezték, hogy nagy áteresztőképességet biztosítson a szemétszállításra fordított idő minimalizálásával. Ez biztosítja, hogy az alkalmazás továbbra is hatékonyan tudjon futni még nagy memóriahasználat mellett is.
3. Nagy kupacok: A Shenandoah-t úgy tervezték, hogy hatékonyan kezelje a nagy kupacokat, így alkalmas a nagy memóriafoglalást igénylő alkalmazásokhoz.
4. Állandó kiosztás: A Shenandoah alkalmas állandó objektum-kiosztást és -használatot igénylő alkalmazásokhoz, mivel ezt hatékonyan tudja kezelni.
5. Régebbi objektumok: A Shenandoah olyan alkalmazásokhoz alkalmas, ahol az objektumok régebbiek, és az új objektumok létrehozásának költsége kicsi, mivel ezt hatékonyan tudja kezelni.
6. Konténerhasználat: A Shenandoah használható konténeres környezetben, de ez az adott felhasználási esettől függ.
ZGC:
1. Alacsony késleltetés: A ZGC-t úgy tervezték, hogy minimalizálja a szünetidőt, mivel a legtöbb szemétszállítási munkát az alkalmazással egyidejűleg végzi. Ez biztosítja, hogy az alkalmazás érzékeny maradjon, és még nagy memóriahasználat mellett is jól működjön.
2. Nagy áteresztőképesség: A ZGC-t úgy tervezték, hogy nagy áteresztőképességet biztosítson a szemétszállításra fordított idő minimalizálásával. Ez biztosítja, hogy az alkalmazás továbbra is hatékonyan tudjon futni még nagy memóriahasználat mellett is.
3. Nagy kupacok: A ZGC-t úgy tervezték, hogy hatékonyan kezelje a nagy kupacokat, így alkalmas a nagy memóriafoglalást igénylő alkalmazásokhoz.
4. NUMA-Aware: A ZGC-t úgy tervezték, hogy NUMA-tudatos legyen, ami azt jelenti, hogy hatékonyan képes kezelni a nagy kupacokat és a több CPU magot.
5. Kísérleti szolgáltatás: A ZGC egy kísérleti szolgáltatás, amelynek engedélyezéséhez speciális parancssori beállítások szükségesek. Alkalmas olyan alkalmazásokhoz, amelyek nagyon rövid szünetet igényelnek, és nagy memóriafoglalásokat tudnak kezelni.
Összefoglalva, mind a Shenandoah, mind a ZGC úgy lett kialakítva, hogy alacsony késleltetést és nagy átviteli sebességet biztosítsanak, így alkalmasak a hatékony memóriakezelést igénylő alkalmazásokhoz.
Idézetek:[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