Leg het gebruik van de parameters Xms
en Xmx
in JVM’s uit. Wat zijn de standaardwaarden voor hen?
Antwoord 1, autoriteit 100%
De vlag Xmx
specificeert de maximale geheugentoewijzingspool voor een Java Virtual Machine (JVM), terwijl Xms
de initiële geheugentoewijzingspool specificeert.
Dit betekent dat uw JVM wordt gestart met een Xms
hoeveelheid geheugen en maximaal Xmx
geheugen kan gebruiken. Als u bijvoorbeeld een JVM zoals hieronder start, wordt deze gestart met 256 MB geheugen en kan het proces tot 2048 MB geheugen gebruiken:
java -Xms256m -Xmx2048m
De geheugenvlag kan ook in verschillende groottes worden opgegeven, zoals kilobytes, megabytes, enzovoort.
-Xmx1024k
-Xmx512m
-Xmx8g
De vlag Xms
heeft geen standaardwaarde en Xmx
heeft doorgaans een standaardwaarde van 256 MB. Deze vlaggen worden vaak gebruikt wanneer u een java.lang.OutOfMemoryError
tegenkomt.
Houd er bij het gebruik van deze instellingen rekening mee dat deze instellingen voor de heap van de JVM zijn, en dat de JVM meer geheugen kan en zal gebruiken dan alleen de grootte die aan de heap is toegewezen. Uit Documentatie van Oracle:
Merk op dat de JVM meer geheugen gebruikt dan alleen de heap. Java-methoden, thread-stacks en native handvatten worden bijvoorbeeld apart van de heap in het geheugen toegewezen, evenals interne JVM-gegevensstructuren.
Antwoord 2, autoriteit 22%
Voer het commando java -X
uit en je krijgt een lijst met alle -X
opties:
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
De -X-opties zijn niet-standaard en kunnen zonder voorafgaande kennisgeving worden gewijzigd.
Ik hoop dat dit je zal helpen om Xms
, Xmx
en vele andere dingen te begrijpen die er het meest toe doen. 🙂
Antwoord 3
Je kunt het specificeren in je IDE. Bijvoorbeeld voor Eclipse in Configuraties uitvoeren > VM-argumenten. U kunt -Xmx800m -Xms500m
invoeren als
Antwoord 4
De vraag zelf is hierboven al behandeld.
Gewoon een deel van de standaardwaarden toevoegen.
Volgens http://docs.oracle .com/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/optionX.html
De standaardwaarde van Xmx hangt af van het platform en de hoeveelheid geheugen die beschikbaar is in het systeem.
Antwoord 5
-Xms initiële heapgrootte voor het opstarten, maar tijdens het werkproces kan de heapgrootte kleiner zijn dan -Xms vanwege inactiviteit van gebruikers of GC-iteraties.
Dit is geen minimaal vereiste heapgrootte.
-Xmx maximale heapgrootte
Antwoord 6
heel eenvoudig
Xss gebruikt om de grootte van het stapelgeheugen in te stellen
Xms-opstartheapgrootte
Xmx Maximale heapgrootte indien niet ingesteld 256 MB gebruikt