Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon aké sú výhody používania Shenandoah alebo ZGC na zber odpadu


aké sú výhody používania Shenandoah alebo ZGC na zber odpadu


Shenandoah a ZGC sú dva pokročilé garbage collectory navrhnuté tak, aby poskytovali efektívne garbage collection s nízkou latenciou pre Java aplikácie. Tu sú niektoré kľúčové výhody používania týchto kolektorov:

Shenandoah GC:

1. Low Pause Times: Shenandoah GC je navrhnutý tak, aby minimalizoval časy prestávok vykonávaním väčšiny prác na zber odpadu súčasne s aplikáciou. To zaisťuje, že aplikácia zostáva pohotová a funguje dobre aj pri veľkom využití pamäte[1][3].

2. Súbežné zhutňovanie: Shenandoah GC vykonáva súbežné zhutňovanie, čo znamená, že zhutňuje haldu, kým je aplikácia spustená. To znižuje potrebu úplných prestávok na zber odpadu a zaisťuje, že halda zostane kompaktná a efektívna[1][3].

3. Nezávislé od veľkosti haldy: Časy pauzy Shenandoah GC sú nezávislé od veľkosti haldy. To znamená, že dokáže spracovať veľké haldy bez výrazných prestávok, vďaka čomu je vhodný pre aplikácie, ktoré vyžadujú veľké alokácie pamäte[1][3].

4. Vysoká priepustnosť: Shenandoah GC je navrhnutý tak, aby poskytoval vysokú priepustnosť minimalizovaním času stráveného zberom odpadu. To zaisťuje, že aplikácia môže naďalej efektívne bežať aj pri veľkej spotrebe pamäte[1][3].

ZGC:

1. Nízka latencia: ZGC je navrhnutý tak, aby poskytoval extrémne nízku latenciu minimalizovaním času stráveného zberom odpadu. Dosahuje to vykonávaním väčšiny prác na zber odpadu súčasne s aplikáciou a využívaním jednogeneračného regionálneho prístupu[2].

2. NUMA-Aware: ZGC je navrhnutý tak, aby podporoval NUMA, čo znamená, že dokáže efektívne spracovať veľké hromady a viacero jadier CPU. To zaisťuje, že zberač odpadu môže využívať dostupné hardvérové ​​prostriedky[2].

3. Vysoká priepustnosť: ZGC je navrhnutý tak, aby poskytoval vysokú priepustnosť minimalizovaním času stráveného zberom odpadu. To zaisťuje, že aplikácia môže naďalej efektívne bežať aj pri veľkom využití pamäte[2].

4. Experimentálna funkcia: ZGC je experimentálna funkcia, ktorá vyžaduje špecifické možnosti príkazového riadka na aktiváciu. Je vhodný pre aplikácie, ktoré vyžadujú veľmi krátke časy prestávok a dokážu zvládnuť veľké pridelenie pamäte[2].

Stručne povedané, Shenandoah aj ZGC sú navrhnuté tak, aby poskytovali nízku latenciu a efektívne zbieranie odpadu pre aplikácie Java. Sú vhodné pre aplikácie, ktoré vyžadujú vysokú priepustnosť a dokážu zvládnuť veľké alokácie pamäte.

Citácie:
[1] https://clojure-goes-fast.com/blog/shenandoah-in-production/
[2] https://developers.redhat.com/articles/2021/11/02/how-choose-best-java-garbage-collector
[3] https://www.reddit.com/r/feedthebeast/comments/r24zg4/upgrade_your_java_to_one_that_has_the_shenandoah/
[4] https://stackoverflow.com/questions/64252590/how-does-clr-gc-compare-to-latest-zgc-and-shenandoah-gc-on-jvm
[5] https://www.uber.com/blog/jvm-tuning-garbage-collection/