Yanıtlar:
Bayrak Xmx, Java sanal makinesi (JVM) için maksimum bellek ayırma havuzunu Xmsbelirtirken, ilk bellek ayırma havuzunu belirtir.
Bu, JVM'nizin Xmsbellek miktarıyla başlatılacağı ve maksimum Xmxbellek kullanabileceği anlamına gelir . Örneğin, aşağıdaki gibi bir JVM'yi başlatmak 256 MB bellekle başlayacak ve işlemin 2048 MB'a kadar bellek kullanmasına izin verecektir:
java -Xms256m -Xmx2048m
Bellek bayrağı, kilobayt, megabayt vb. Gibi farklı boyutlarda da belirtilebilir.
-Xmx1024k
-Xmx512m
-Xmx8g
XmsBayrak varsayılan değerine sahiptir ve Xmxtipik olarak 256 MB'lık bir varsayılan değeri vardır. Bu bayraklar için yaygın bir kullanım, bir java.lang.OutOfMemoryError.
Bu ayarları kullanırken, bu ayarların JVM'nin yığını için olduğunu ve JVM'nin yalnızca öbeğe ayrılan boyuttan daha fazla bellek kullanabileceğini / kullanacağını unutmayın. Gönderen Oracle'ın belgelerinde :
JVM'nin yalnızca yığından daha fazla bellek kullandığını unutmayın. Örneğin, Java yöntemleri, iş parçacığı yığınları ve yerel tanıtıcılar bellekte yığıntan ayrı olarak JVM dahili veri yapılarına ayrılır.
OutOfMemoryErrorgerçekleşir.
-Xms256m"256 MiB", "256 MB" değil, çünkü on güçten ziyade ikili güçlerle çalışıyor. Bkz. En.wikipedia.org/wiki/Binary_prefix . Buna ek olarak, fazladan bir Survivor alanı havuzu için bazı kullanılamayan alan Runtime.getRuntime().maxMemory()
Komutu çalıştırın java -Xve tüm -Xseçeneklerin bir listesini alacaksınız :
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 seçenekleri standart değildir ve önceden bildirilmeksizin değiştirilebilir.
Bu anlamanıza yardımcı olacağını umuyoruz Xms, Xmxen önemli olan yanı sıra birçok başka şeyler. :)
IDE'nizde belirtebilirsiniz. Örneğin, Çalıştırma Yapılandırmaları → VM bağımsız değişkenlerindeki Eclipse için . Sen girebilirsiniz -Xmx800m -Xms500molarak

Sorunun kendisi yukarıda zaten ele alındı. Varsayılan değerlerin bir kısmını eklemeniz yeterlidir.
Http://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/optionX.html uyarınca
Xmx'in varsayılan değeri platforma ve sistemde kullanılabilir bellek miktarına bağlı olacaktır.
-Xmx128m -Xms64metrafta zirve olabilir275mRes mem, ama kullanırken-Xmx128m -Xms128metrafında zirve olabilir550mRES GC ve neler olduğuna göz ... strese Java 8 En şeyi olduğu kullanma mem