Forskjell i brukt, engasjert og maksimalt hukommelsesminne

1. Oversikt

I denne korte artikkelen skal vi se forskjellen mellom forskjellige beregninger av minnestørrelse i JVM.

Først skal vi snakke om hvordan adaptiv dimensjonering fungerer, og deretter evaluere vi forskjellen mellom maks, brukte og engasjerte størrelser.

2. Maks størrelse og tilpasset størrelse

To verdier styrer størrelsen på JVM-bunken: en startverdi spesifisert via -Xms flagg og en annen maksimal verdi kontrollert av -Xmx innstillingsflagg.

Hvis vi ikke spesifiserer disse flaggene, vil JVM velge standardverdier for dem. Disse standardverdiene avhenger av det underliggende operativsystemet, mengden tilgjengelig RAM, og selvfølgelig JVM-implementeringen selv:

Uansett den faktiske størrelsen og standardverdiene, begynner haugstørrelsen med en innledende størrelse. Når vi tildeler flere objekter, kan haugestørrelsen vokse for å imøtekomme det. Haugestørrelsen kan imidlertid ikke gå utover den maksimale haugestørrelsen.

Enkelt sagt, maks. haugstørrelse er størrelsen som er angitt via -Xmx flagg. Også når vi ikke eksplisitt spesifiserer -Xmx, beregner JVM en standard maks størrelse.

3. Brukt størrelse

La oss anta at vi tildelte noen få objekter siden programmet startet. Haugestørrelsen kan vokse litt for å imøtekomme nye objekter:

Den brukte plassen er mengden minne som for tiden er okkupert av Java-objekter. Det er alltid mindre enn eller lik maks størrelse.

4. Forpliktet størrelse

Den forpliktede størrelsen er mengden minne som garantert er tilgjengelig for bruk av den virtuelle Java-maskinen. Den forpliktede minnestørrelsen er alltid større enn eller lik den brukte størrelsen.

5. Konklusjon

I denne korte artikkelen så vi forskjellen mellom maks, brukt og engasjert dyngstørrelse.


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