ZGC: n käyttämällä moni-terastian kasojalla voi olla useita suorituskykyvaikutuksia:
1. Matala latenssi: ZGC on suunniteltu minimoimaan taukoajat, varmistaen, että sovellus pysyy reagoivana jopa suurilla kasoilla. Se saavuttaa tämän suorittamalla useimmat roskien keräystyöt samanaikaisesti sovelluksen kanssa, mikä johtaa taukoaikoihin alle 10 ms [3] [4].
2. Korkea läpimenoaika: ZGC on suunniteltu tarjoamaan suurta suorituskykyä minimoimalla roskien keräykseen käytetty aika. Tämä varmistaa, että sovellus voi jatkaa tehokkaasti jopa raskaan muistin käytön alla [2] [4].
3. Monikartoitus: ZGC käyttää monikartoitusta virtuaalimuistin eri alueilla samaan fyysiseen muistiin. Tämä voi johtaa lisääntyneeseen muistin käyttöön, koska käyttöjärjestelmä voi ilmoittaa 3x suuremman muistin käytön ylimääräisten kartoitusten vuoksi [1].
4. Värilliset osoittimet: ZGC käyttää värillisiä osoittimia metatietojen tallentamiseen 64-bittisissä osoittimissa. Tämä voi luoda lisätyötä osoitusosoittimien purkamisen yhteydessä, mutta monikartoitustekniikka auttaa lieventämään tätä yläpuolella [2].
5. NUMA-tieto: ZGC on suunniteltu NUMA-tietoiseksi, mikä tarkoittaa, että se pystyy käsittelemään tehokkaasti suuria kasoja ja useita CPU-ytimiä. Tämä varmistaa, että jätteiden kerääjä voi hyödyntää käytettävissä olevia laitteistoresursseja [2] [4].
6. Viritysvaihtoehdot: ZGC: llä on useita viritysvaihtoehtoja, kuten kasankoon enimmäiskoko ja samanaikaisten GC -säikeiden lukumäärä. Nämä vaihtoehdot voivat auttaa tasapainottamaan muistin käyttöä ja roskien keräyssuorituskykyä [3] [4].
7. Kokeellinen ominaisuus: ZGC on kokeellinen ominaisuus ja vaatii tiettyjä komentorivivaihtoehtoja käyttöön. Se sopii sovelluksiin, jotka vaativat erittäin lyhyitä taukoaikoja ja pystyy käsittelemään suuria muistin allokaatioita [1] [3].
Yhteenvetona voidaan todeta, että ZGC: n käyttäminen moni-tavun kasojen kanssa voi tarjota matalan viivettä, suurta läpimenoaikaa ja tehokkaan muistinhallinnan. Se vaatii kuitenkin huolellista viritystä ja voi johtaa lisääntyneeseen muistin käyttöön monikartoituksen vuoksi.
Viittaukset:.
[2] https://www.opsian.com/blog/javas-new-zgc-is-very-excing/
.
[4] https://developers.redhat.com/articles/2021/11/02/how-hoose-best-java-garbage-collector
.