Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon kakšne so posledice uporabe ZGC z večterabajtnimi kopicami na zmogljivost


kakšne so posledice uporabe ZGC z večterabajtnimi kopicami na zmogljivost


Uporaba ZGC z večterabajtnimi kopicami ima lahko več posledic za zmogljivost:

1. Nizka zakasnitev: ZGC je zasnovan tako, da minimizira čase premora in zagotavlja, da aplikacija ostane odzivna tudi z velikimi kopicami. To doseže tako, da večino dela zbiranja smeti izvaja sočasno z aplikacijo, zaradi česar so časi premora krajši od 10 ms[3][4].

2. Visoka prepustnost: ZGC je zasnovan tako, da zagotavlja visoko prepustnost z zmanjšanjem časa, porabljenega za zbiranje smeti. To zagotavlja, da lahko aplikacija še naprej učinkovito deluje tudi pri veliki uporabi pomnilnika[2][4].

3. Multi-Mapping: ZGC uporablja večkratno preslikavo za preslikavo različnih obsegov virtualnega pomnilnika v isti fizični pomnilnik. To lahko privede do povečane porabe pomnilnika, saj lahko operacijski sistem poroča o 3x večji uporabi pomnilnika zaradi dodatnih preslikav[1].

4. Barvni kazalci: ZGC uporablja barvne kazalce za shranjevanje metapodatkov v 64-bitnih kazalcih. To lahko povzroči dodatno delo pri dereferenciranju kazalcev, vendar tehnika večkratnega preslikave pomaga ublažiti te stroške [2].

5. NUMA-Aware: ZGC je zasnovan za NUMA-aware, kar pomeni, da lahko učinkovito obravnava velike kopice in več jeder CPE. To zagotavlja, da lahko zbiralec smeti izkoristi razpoložljive vire strojne opreme[2][4].

6. Možnosti nastavitve: ZGC ima več možnosti nastavitve, kot je nastavitev največje velikosti kopice in števila sočasnih niti GC. Te možnosti lahko pomagajo uravnotežiti uporabo pomnilnika in zmogljivost zbiranja smeti[3][4].

7. Poskusna funkcija: ZGC je eksperimentalna funkcija in zahteva posebne možnosti ukazne vrstice za omogočanje. Primeren je za aplikacije, ki zahtevajo zelo kratke premore in lahko obravnavajo velike dodelitve pomnilnika[1][3].

Če povzamemo, uporaba ZGC z večterabajtnimi kopicami lahko zagotovi nizko zakasnitev, visoko prepustnost in učinkovito upravljanje pomnilnika. Vendar pa zahteva skrbno nastavitev in lahko povzroči večjo porabo pomnilnika zaradi večkratnega preslikave.

Citati:
[1] https://stackoverflow.com/questions/62926652/the-java-zgc-garbage-collector-uses-a-lot-of-memory
[2] https://www.opsian.com/blog/javas-new-zgc-is-very-exciting/
[3] https://docs.oracle.com/en/java/javase/11/gctuning/z-garbage-collector1.html
[4] https://developers.redhat.com/articles/2021/11/02/how-choose-best-java-garbage-collector
[5] https://dzone.com/articles/java-z-garbage-collector-zgc-a-deep-dive-with-exam