Quais são os parâmetros Xms e Xmx ao iniciar JVMs? [duplicado]

esta pergunta já tem uma resposta aqui:

por favor, explique a utilização de Xms e Xmx parâmetros em JVMs. Quais são os valores padrão para eles?

Author: Peter Mortensen, 2013-02-08

4 answers

A bandeira Xmx indica a reserva máxima de alocação de memória para uma máquina virtual Java (JVM), enquanto Xms indica a reserva inicial de alocação de memória.

Isto significa que o seu JVM será iniciado com Xms Quantidade de memória e será capaz de usar um máximo de Xmx Quantidade de memória. Por exemplo, iniciar um JVM como abaixo irá iniciá-lo com 256 MB de memória e permitirá que o processo use até 2048 MB de memória:

java -Xms256m -Xmx2048m

A bandeira da memória também pode ser especificado em vários tamanhos, tais como kilobytes, megabytes, e assim por diante.

-Xmx1024k
-Xmx512m
-Xmx8g

A opção Xms não tem valor por omissão, e Xmx tipicamente tem um valor por omissão de 256 MB. Um uso comum para estas bandeiras é quando você encontra um java.lang.OutOfMemoryError.

Ao usar estas configurações, tenha em mente que estas configurações são para o JVM heap, e que o JVM pode / irá usar mais memória do que apenas o tamanho atribuído ao heap. Da documentação da Oracle:

Nota que o JVM usa mais memória do que apenas a pilha. Por exemplo, métodos Java, stacks de thread e pegas nativas são alocados em memória separada do heap, bem como estruturas de dados internas JVM.

 1011
Author: hexacyanide, 2018-03-16 00:50:18

Execute o comando java -X e obterá uma lista de todas as opções -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

As opções-X não são padrão e estão sujeitas a alterações sem aviso prévio.

Espero que isto o ajude a compreender o Xms, o Xmx, bem como muitas outras coisas que mais importam. :)

 244
Author: Rupesh Yadav, 2018-06-05 07:54:07
Pode especificá-lo na sua IDE. Por exemplo, para o Eclipse em Executar configuraçõesargumentos VM . Você entra -Xmx800m -Xms500m:

Enter image description here

 19
Author: Mehrez BEN MOHAMED, 2018-03-16 00:51:48
A parte principal da questão já foi abordada anteriormente. Apenas adicionando parte dos valores padrão.

De acordo com http://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/optionX.html

O valor por omissão do Xmx dependerá da plataforma e da quantidade de memória disponível no sistema.

 11
Author: Abhishek Aich, 2015-02-09 08:54:23