Vennligst forklar bruken av Xms
og Xmx
parametere i JVMer. Hva er standardverdiene for dem?
Flagget Xmx
angir den maksimale minnetildelingspoolen for en virtuell Java-maskin (JVM), mens Xms
angir den opprinnelige minnetildelingspoolen.
Dette betyr at din JVM vil bli startet med Xms
mengde minne og vil kunne bruke maksimalt Xmx
mengde minne. Hvis du for eksempel starter en JVM som nedenfor, starter den med 256 MB minne og lar prosessen bruke opptil 2048 MB minne:
java -Xms256m -Xmx2048m
Minneflagget kan også spesifiseres i forskjellige størrelser, for eksempel kilobyte, megabyte og så videre.
-Xmx1024k
-Xmx512m
-Xmx8g
Flagget Xms
har ingen standardverdi, og Xmx
har vanligvis en standardverdi på 256 MB. En vanlig bruk for disse flaggene er når du støter på en java.lang.OutOfMemoryError
.
Når du bruker disse innstillingene, må du huske at disse innstillingene er for JVM&# 39s heap , og at JVM kan / vil bruke mer minne enn bare størrelsen som er tildelt heap. Fra Oracle's dokumentasjon:
Merk at JVM bruker mer minne enn bare bunken. For eksempel er Java-metoder, trådstabler og innfødte håndtak allokert i minne separat fra haugen, så vel som JVM-interne datastrukturer.
Kjør kommandoen java -X
og du vil få en liste over alle -X
alternativer:
C:\Users\Admin>java -X
-Xmixed mixed mode execution (default)
-Xint interpreted mode execution only
-Xbootclasspath:<directories and zip/jar files separated by ;>
set search path for bootstrap classes and resources
-Xbootclasspath/a:<directories and zip/jar files separated by ;>
append to end of bootstrap class path
-Xbootclasspath/p:<directories and zip/jar files separated by ;>
prepend in front of bootstrap class path
-Xdiag show additional diagnostic messages
-Xnoclassgc disable class garbage collection
-Xincgc enable incremental garbage collection
-Xloggc:<file> log GC status to a file with time stamps
-Xbatch disable background compilation
-Xms<size> set initial Java heap size.........................
-Xmx<size> set maximum Java heap size.........................
-Xss<size> set java thread stack size
-Xprof output cpu profiling data
-Xfuture enable strictest checks, anticipating future default
-Xrs reduce use of OS signals by Java/VM (see documentation)
-Xcheck:jni perform additional checks for JNI functions
-Xshare:off do not attempt to use shared class data
-Xshare:auto use shared class data if possible (default)
-Xshare:on require using shared class data, otherwise fail.
-XshowSettings show all settings and continue
-XshowSettings:all show all settings and continue
-XshowSettings:vm show all vm related settings and continue
-XshowSettings:properties show all property settings and continue
-XshowSettings:locale show all locale related settings and continue
-X-alternativene er ikke standard og kan endres uten varsel.
Jeg håper dette vil hjelpe deg å forstå Xms
, Xmx
samt mange andre ting som betyr mest:)
Selve spørsmålet er allerede behandlet ovenfor. Bare å legge til en del av standardverdiene.
I henhold til http://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/optionX.html
Standardverdien for Xmx vil avhenge av plattformen og mengden minne som er tilgjengelig i systemet.