Rozdiel v použitej, nasadenej a maximálnej halde pamäte

1. Prehľad

V tomto krátkom článku sa pozrieme na rozdiel medzi rôznymi metrikami veľkosti pamäte v JVM.

Najprv si povieme, ako funguje adaptívne prispôsobenie veľkosti, a potom vyhodnotíme rozdiel medzi maximálnou, použitou a potvrdenou veľkosťou.

2. Maximálna veľkosť a adaptívne rozmery

Veľkosť haldy JVM riadia dve hodnoty: - jedna počiatočná hodnota zadaná prostredníctvom -Xms vlajkou a ďalšou maximálnou hodnotou kontrolovanou -Xmx ladiaca vlajka.

Ak neurčíme tieto príznaky, potom JVM pre ne vyberie predvolené hodnoty. Tieto predvolené hodnoty závisia od základného operačného systému, množstva dostupnej pamäte RAM a samozrejme od samotnej implementácie JVM:

Bez ohľadu na skutočnú veľkosť a predvolené hodnoty sa veľkosť haldy začína počiatočnou veľkosťou. Keď pridelíme viac objektov, veľkosť haldy sa môže zväčšiť, aby sa do toho zmestila. Veľkosť haldy však nemôže prekročiť maximálnu veľkosť haldy.

Zjednodušene povedané, maximálna veľkosť haldy je veľkosť zadaná prostredníctvom súboru -Xmx vlajka. Tiež, keď výslovne nešpecifikujeme -Xmx, JVM vypočíta predvolenú maximálnu veľkosť.

3. Použitá veľkosť

Teraz predpokladajme, že sme pridelili niekoľko objektov od začiatku programu. Veľkosť haldy sa môže trochu zväčšiť, aby sa do nej zmestili nové objekty:

Využité miesto predstavuje množstvo pamäte, ktorá je v súčasnosti obsadená objektmi Java. Je to vždy menšia alebo rovná maximálna veľkosť.

4. Odovzdaná veľkosť

Potvrdená veľkosť je množstvo pamäte, ktorá je zaručene dostupná pre použitie virtuálnym strojom Java. Veľkosť potvrdenej pamäte je vždy väčšia alebo rovnaká ako použitá veľkosť.

5. Záver

V tomto krátkom článku sme videli rozdiel medzi maximálnou, použitou a potvrdenou veľkosťou haldy.


$config[zx-auto] not found$config[zx-overlay] not found