Jakie są parametry Xms i XMX podczas uruchamiania JVMs? [duplikat]
To pytanie ma już odpowiedź tutaj:
- Jak określa się domyślny rozmiar sterty Javy? 7 odpowiedzi
Proszę wyjaśnić użycie parametrów Xms
i Xmx
w JVMs. Jakie są dla nich wartości domyślne?
4 answers
Znacznik Xmx
określa maksymalną pulę alokacji pamięci dla maszyny wirtualnej Java (JVM), podczas gdy Xms
określa początkową pulę alokacji pamięci.
Oznacza to, że JVM zostanie uruchomiony z Xms
ilością pamięci i będzie mógł wykorzystać maksymalnie Xmx
ilość pamięci. Na przykład uruchomienie JVM, jak poniżej, uruchomi go z 256 MB pamięci i pozwoli procesowi na użycie do 2048 MB pamięci:
java -Xms256m -Xmx2048m
Znacznik pamięci może być również określony w wiele rozmiarów, takich jak kilobajty, megabajty i tak dalej.
-Xmx1024k
-Xmx512m
-Xmx8g
Znacznik Xms
nie ma wartości domyślnej, a Xmx
zazwyczaj ma wartość domyślną 256 MB. Często używa się tych flag, gdy napotkasz java.lang.OutOfMemoryError
.
Podczas korzystania z tych ustawień, należy pamiętać, że te ustawienia są dla sterty JVM , i że JVM może / będzie używać więcej pamięci niż tylko rozmiar przypisany do sterty. Z dokumentacji Oracle :
Zauważ, że JVM wykorzystuje więcej pamięci niż tylko stertę. Na przykład metody Java, stosy wątków i natywne uchwyty są przydzielane w pamięci oddzielonej od sterty, a także wewnętrzne struktury danych JVM.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-16 00:50:18
Uruchom polecenie java -X
, a otrzymasz listę wszystkich opcji -X
:
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
Opcje -X są niestandardowe i mogą ulec zmianie bez powiadomienia.
Mam nadzieję, że to pomoże Ci zrozumieć Xms, Xmx, a także wiele innych rzeczy, które mają największe znaczenie. :)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-05 07:54:07
Możesz go określić w swoim IDE. Na przykład dla Eclipse w Uruchom konfiguracje → argumenty VM . Wpisujesz -Xmx800m -Xms500m
:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-16 00:51:48
Główna część pytania została już omówiona powyżej. Wystarczy dodać część wartości domyślnych.
Zgodnie z http://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/optionX.html
Domyślna wartość Xmx będzie zależeć od platformy i ilości pamięci dostępnej w systemie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-09 08:54:23