ZGC: n monikartoitustekniikka sisältää erilaisten virtuaalimuistin kartoittamisen samaan fyysiseen muistiin. Tätä tekniikkaa käytetään sallimaan enemmän samanaikaisia roskien keräystyötä vähentämällä kuormitusesteiden yläpuolella. Tässä on joitain avainkohtia siitä, kuinka tämä tekniikka vaikuttaa järjestelmän suorituskykyyn:
Multi-kartoitus ja järjestelmän suorituskyky
1. Vähentynyt kuormitusesteen yläpuolella: Multi-kartoitus vähentää kuormituksen esteiden yläpuolella sallimalla roskien keräilijän määrittämään nopeasti objekti tietyssä tilassa (esim. Merkitty vai merkitsemätön). Tämä vähentää kuormitusesteisiin tarvittavien konekauppiohjeiden lukumäärää, mikä johtaa parantuneeseen suorituskykyyn.
2. Lisääntynyt samanaikaisuus: Multi-kartoitus mahdollistaa samanaikaisen roskien keräystyön sallimalla roskien keräilijän käsitellä useita esineitä rinnakkain. Tämä lisää roskien keräilijän yleistä suorituskykyä ja vähentää taukoaikoja.
3. Parannettu muistin tehokkuus: Monikartoitus voi johtaa parannettuun muistin tehokkuuteen vähentämällä kasaan tarvittavan muistin määrää. Tämä johtuu siitä, että sama fyysinen muisti voidaan kartoittaa useisiin virtuaalimuistialueisiin, mikä vähentää muistin käyttöä.
4. Lisääntynyt monimutkaisuus: Multi-kartoitus esittelee roskien keräilijälle ylimääräistä monimutkaisuutta, mikä voi johtaa lisääntyneisiin ylläpitokustannuksiin ja mahdollisiin suorituskykyongelmiin.
5. Vaikutus järjestelmän resursseihin: Monikartoitus voi vaikuttaa järjestelmän resursseihin, kuten CPU: n ja muistin käyttöön. Jäytekeräilijän on hallittava kartoituksia ja varmistettava, että oikeat esineet käsitellään, mikä voi johtaa lisääntyneeseen prosessorin käyttöön.
6. Vaikutus järjestelmän suorituskykyyn: Multi-kartoituksella voi olla merkittävä vaikutus järjestelmän suorituskykyyn, etenkin taukoaikojen ja läpimenon suhteen. Jätteiden keräilijän on hallittava kartoituksia ja varmistettava, että oikeat esineet käsitellään, mikä voi johtaa lisääntyneisiin taukoaikoihin ja vähentyneeseen läpimenoon.
7. Impact-järjestelmän stabiilisuuteen: Monikartoitus voi myös vaikuttaa järjestelmän stabiilisuuteen, etenkin jos kartoituksia ei hallita oikein. Tämä voi johtaa ongelmiin, kuten muistivuodot tai vääriä objektiviitteitä.
8. Impact-skaalautuvuuteen: Monikartoitus voi vaikuttaa järjestelmän skaalautuvuuteen, etenkin jos kartoituksia ei hallita oikein. Tämä voi johtaa ongelmiin, kuten lisääntyneeseen muistin käyttöä tai suorituskykyä.
Yhteenvetona voidaan todeta, että ZGC: n monikartoitustekniikalla voi olla sekä positiivisia että kielteisiä vaikutuksia järjestelmän suorituskykyyn. Vaikka se voi vähentää kuormitusesteen yleiskustannuksia ja lisätä samanaikaisuutta, se voi myös tuoda esiin lisää monimutkaisuus- ja vaikutusjärjestelmien resursseja ja vakautta.
Viittaukset:[1] https://codeline24.com/java-21-path-to-generational-zgc/
[2] https://openjdk.org/jeps/439
[3] https://www.opsian.com/blog/javas-new-zgc-is-very-excing/
[4] https://dev.java/learn/jvm/tool/garbage-collection/zgc-deepdive/
[5] https://www.diva-portal.org/smash/get/diva2:1466940/fulltext01.pdf