Selitä Xms
- ja Xmx
-parametrien käyttö JVM:ssä. Mitkä ovat niiden oletusarvot?
Lipuke Xmx
määrittää Java-virtuaalikoneen (JVM) maksimimuistivarannon, kun taas Xms
määrittää alkuperäisen muistivarannon.
Tämä tarkoittaa, että JVM käynnistetään Xms
-muistimäärällä ja se voi käyttää enintään Xmx
-muistimäärää. Jos esimerkiksi käynnistät JVM:n seuraavasti, se käynnistyy 256 MB muistilla ja prosessi voi käyttää enintään 2048 MB muistia:
java -Xms256m -Xmx2048m
Muistilippu voidaan määrittää myös eri kokoisina, kuten kilotavuina, megatavuina ja niin edelleen.
-Xmx1024k
-Xmx512m
-Xmx8g
Xms
-lipulla ei ole oletusarvoa, ja Xmx
:n oletusarvo on yleensä 256 MB. Näiden lippujen yleinen käyttötarkoitus on, kun kohtaat java.lang.OutOfMemoryError
-virheen.
Kun käytät näitä asetuksia, pidä mielessä, että nämä asetukset koskevat JVM:n kasaa ja että JVM voi käyttää/käyttää enemmän muistia kuin vain kasaan varattua muistia. Oraclen dokumentaatiosta:
Huomaa, että JVM käyttää enemmän muistia kuin pelkkä kasa. Esimerkiksi Java-metodit, säiepinot ja natiivikäsitteet varataan muistiin erillään kasasta, samoin kuin JVM:n sisäiset tietorakenteet.
Suorita komento java -X
, niin saat luettelon kaikista -X
-vaihtoehdoista:
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
Ohjeet -X eivät ole vakiomuotoisia ja voivat muuttua ilman ennakkoilmoitusta.
Toivottavasti tämä auttaa sinua ymmärtämään Xms
, Xmx
sekä monia muita tärkeitä asioita :)
Itse kysymystä on jo käsitelty edellä. Lisään vain osan oletusarvoista.
Kuten http://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/optionX.html
Xmx:n oletusarvo riippuu alustasta ja järjestelmässä käytettävissä olevan muistin määrästä.