Ce -Xms și -Xmx parametri atunci când începe JVM?

Vă rugăm să explicați utilizarea de Xms " și " Xmx parametri în JVMs. Ce sunt valorile implicite pentru ei?

Comentarii la întrebare (1)
Soluția

Steagul Xmx specifică maximă de alocare de memorie piscină pentru o mașină virtuală Java (JVM), în timp ce Xms specifică inițială de alocare de memorie piscină.

Acest lucru înseamnă că JVM va fi început cu Xmscantitatea de memorie și va fi capabil de a folosi un maxim deXmx` cantitatea de memorie. De exemplu, începe un JVM ca mai jos va începe cu 256 MB de memorie și va permite procesul de a utiliza până la 2048 MB de memorie:

java -Xms256m -Xmx2048m

Memoria de pavilion poate fi, de asemenea, specificate în diferite dimensiuni, cum ar fi kilobytes, megaocteți, și așa mai departe.

-Xmx1024k
-Xmx512m
-Xmx8g

Anii Xms pavilion nu are nici o valoare implicită, și Xmx are de obicei o valoare standard de 256 MB. O utilizare comună pentru aceste steaguri este atunci când vă confruntați cu o java.lang.OutOfMemoryError.

Când utilizați aceste setări, rețineți că aceste setări sunt pentru JVM's heap, și că JVM pot/vor utiliza mai multă memorie decât dimensiunea alocate în heap. De Oracle's documentatiei:

Rețineți că JVM utilizează mai multă memorie decât doar heap. De exemplu Java metode, fir stive și nativ mânerele sunt alocate în memorie separat de heap, precum și JVM structurile de date interne.

Comentarii (9)

Rulați comanda java -Xși veți obține o listă cu toate-X` opțiuni:

C:\Users\Admin>java -X
-Xmixed           mixed mode execution (default)
-Xint             interpreted mode execution only
-Xbootclasspath:
                      set search path for bootstrap classes and resources
-Xbootclasspath/a:
                      append to end of bootstrap class path
-Xbootclasspath/p:
                      prepend in front of bootstrap class path
-Xdiag            show additional diagnostic messages
-Xnoclassgc       disable class garbage collection
-Xincgc           enable incremental garbage collection
-Xloggc:    log GC status to a file with time stamps
-Xbatch           disable background compilation
-Xms        set initial Java heap size.........................
-Xmx        set maximum Java heap size.........................
-Xss        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 opțiuni sunt non-standard și supuse de a modifica fără preaviz.

Sper că acest lucru vă va ajuta să înțelegeți Xms, Xmx precum și multe alte lucruri care contează cel mai mult. :)

Comentarii (0)

Puteți specifica în IDE. De exemplu, pentru Eclipse în Run ConfigurațiiVM argumente. Puteți introduce -Xmx800m -Xms500m ca

Comentarii (3)

Întrebarea în sine a fost deja abordată de mai sus. Adăugarea doar o parte din valorile implicite.

Ca pe http://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/optionX.html

Valoarea implicită a Xmx va depinde de platformă și de cantitatea de memorie disponibilă în sistem.

Comentarii (1)

JVM memorie este format din următoarele segmente:

  1. Memorie Heap, care este depozitarea de obiecte Java
  2. Non-Memorie Heap, care este folosit de Java pentru a stoca încărcate clase și alte meta-date
  3. JVM codul în sine, JVM structuri interne, încărcate profiler agent de cod și de date, etc.

JVM are un morman de execuție zona de date din care memorie pentru toate cazuri de clasă și tablouri sunt alocate. Acesta este creat în JVM start-up.

Dimensiunea heap poate fi configurat cu următoarele VM opțiuni:

-Xmx - to set the maximum Java heap size
-Xms - to set the initial Java heap size

În mod implicit, maxim dimensiunea heap este de 64 MB.

Memorie Heap pentru obiecte este revendicată de către un sistem automat de management al memoriei de sistem care este cunoscut ca un colector de gunoi. Heap poate fi de o mărime fixă sau poate fi extins și micșorate, în funcție de colectorul de gunoi's de strategie.

Următoarea comandă începe JVM cu 256 mb de memorie, și pentru a permite procesul Java să utilizeze până la 4G (4096MB) de memorie.

java -Xms256m -Xmx4g
Comentarii (0)