Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon mis kasu on Shenandoahi või ZGC kasutamisest prügikoristusel


mis kasu on Shenandoahi või ZGC kasutamisest prügikoristusel


Shenandoah ja ZGC on kaks täiustatud prügikogujat, mis on loodud pakkuma Java rakenduste jaoks madala latentsusajaga ja tõhusat prügikogumist. Siin on mõned nende kollektsionääride kasutamise peamised eelised:

Shenandoah GC:

1. Madalad pausiajad: Shenandoah GC on loodud pausiaegade minimeerimiseks, teostades enamiku prügikoristustöödest samaaegselt rakendusega. See tagab, et rakendus jääb tundlikuks ja toimib hästi ka suure mälukasutuse korral[1][3].

2. Samaaegne tihendamine: Shenandoah GC teostab samaaegset tihendamist, mis tähendab, et see tihendab hunniku rakenduse töötamise ajal. See vähendab vajadust täielike prügikoristuspauside järele ning tagab, et hunnik jääb kompaktseks ja tõhusaks[1][3].

3. Sõltumatu kuhja suurusest: Shenandoah GC pausiajad ei sõltu kuhja suurusest. See tähendab, et see saab hakkama suurte hunnikutega ilma oluliste pausideta, mistõttu sobib see rakendustele, mis nõuavad suuri mälueraldisi[1][3].

4. Kõrge läbilaskevõime: Shenandoah GC on loodud suure läbilaskevõime tagamiseks, minimeerides prügikoristusele kuluvat aega. See tagab, et rakendus jätkab tõhusat töötamist ka suure mälukasutuse korral[1][3].

ZGC:

1. Madal latentsusaeg: ZGC on loodud pakkuma äärmiselt madalat latentsust, minimeerides prügikoristusele kuluvat aega. See saavutatakse, teostades enamiku prügikoristustöödest samaaegselt rakendusega ja kasutades ühe põlvkonna piirkonnapõhist lähenemisviisi[2].

2. NUMA-Aware: ZGC on loodud olema NUMA-teadlik, mis tähendab, et see saab tõhusalt hakkama suurte hunnikute ja mitme protsessori tuumaga. See tagab, et prügikorjaja saab olemasolevaid riistvararessursse ära kasutada[2].

3. Kõrge läbilaskevõime: ZGC on loodud suure läbilaskevõime tagamiseks, minimeerides prügikoristusele kuluvat aega. See tagab, et rakendus jätkab tõhusat töötamist ka suure mälukasutuse korral[2].

4. Katsefunktsioon: ZGC on eksperimentaalne funktsioon, mille lubamiseks on vaja konkreetseid käsurea valikuid. See sobib rakendustele, mis nõuavad väga lühikest pausi ja saavad hakkama suurte mälueraldistega[2].

Kokkuvõttes on nii Shenandoah kui ka ZGC loodud pakkuma Java rakenduste jaoks madala latentsusajaga ja tõhusat prügikoristust. Need sobivad rakendustele, mis nõuavad suurt läbilaskevõimet ja saavad hakkama suurte mälueraldistega.

Tsitaadid:
[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/