Aumentar o tamanho do heap em Java

estou a trabalhar num servidor Windows 2003 (64-bit) com 8 GB RAM. Como posso aumentar o máximo de memória do heap? Estou a usar a bandeira {[[0]} para aumentar o tamanho do Monte para 1500 Mb. Posso aumentar a memória de heap para 75% da memória física (Heap de 6 GB)?

Author: Joachim Sauer, 2009-10-14

11 answers

Pode aumentar para 4GB num sistema de 32 bits. Se você está em um sistema de 64 bits você pode ir mais alto. Não precisa se preocupar se você escolheu incorretamente, se você pedir 5g em um sistema de 32 bits java irá reclamar sobre um valor inválido e sair.

Como outros postaram, use as bandeiras da linha cmd-p. ex.

java -Xmx6g myprogram

Você pode obter uma lista completa (ou uma lista quase completa, de qualquer forma) escrevendo java-X.

 284
Author: Steve B., 2009-10-14 12:48:31

É possível aumentar o tamanho do heap atribuído pelo JVM usando as opções da linha de comandos Aqui temos 3 opções

-Xms<size>        set initial Java heap size
-Xmx<size>        set maximum Java heap size
-Xss<size>        set java thread stack size

java -Xms16m -Xmx64m ClassName

Na linha acima podemos definir heap mínimo para 16mb e heap máximo 64mb

 145
Author: Karthik Reddy, 2013-03-21 12:23:38

Em um JVM de 32 bits, o maior tamanho de heap que você pode teoricamente definir é 4gb. Para usar um tamanho de pilha maior, você precisa usar um JVM de 64 bits. Tente o seguinte:

Java-Xmx6144M-d64

A bandeira-d64 é importante porque isto diz ao JVM para executar no modo 64-bits.

 25
Author: Kevin, 2009-10-14 12:59:10

É possível aumentar o tamanho do heap atribuído pela JVM no eclipse directamente No eclipse IDE goto

Executar - - - - >Executar Configurações - - - - >Argumentos

Enter-Xmx1g (é usado para definir o tamanho máximo como Xmx256m ou Xmx1g...... m-- > mb g - - - >gb)

 10
Author: Karthik Reddy, 2013-03-20 08:11:44

Java-d64-Xms512m-Xmx4g HelloWorld

Onde, - d64: permitirá o jvm de 64 bits - Xms512m: irá definir o tamanho inicial do heap como 512 MB - Xmx4g: irá definir o tamanho máximo de heap como 4 GB (aqui o nome do arquivo java é: HelloWorld.java)

 8
Author: Sumit Deshinge, 2013-07-12 07:03:12
Posso aumentar a memória para 75?% of physical memory (6GB Heap).
Podes, sim. Na verdade, você pode aumentar para mais do que a quantidade de memória física, se quiser.

Se é uma boa ideia fazer isto depende de quanto mais está a correr no seu sistema. Em particular, se o "conjunto de trabalho" das aplicações e serviços que estão atualmente em execução excede significativamente a memória física disponível, o seu sistema é responsável por"thrash", passar muito tempo movendo páginas de memória virtual de e para o disco. O efeito líquido é que o sistema fica horrivelmente lento.

 6
Author: Stephen C, 2009-10-14 10:16:48

Por favor use o comando abaixo para mudar o tamanho do heap para 6GB

export JAVA_OPTS="-Xms6144m -Xmx6144m -XX:NewSize=256m -XX:MaxNewSize=356m -XX:PermSize=256m -XX:MaxPermSize=356m"
 2
Author: Baum mit Augen, 2017-01-18 00:21:39

Pode aumentar o tamanho do Monte passando os parâmetros JVM - Xms e - Xmx como em baixo:

Para Ficheiros Jar:

java -jar -Xms4096M -Xmx6144M jarFilePath.jar

Para Ficheiros Java:

 java -Xms4096M -Xmx6144M ClassName

Os parâmetros acima aumentam os tamanhos iniciais (- Xms) para 4GB (4096 MB) e MaxHeapSize (- Xmx) para 6GB (6144 MB).

Mas, oTamanho do Heap da geração jovem permanecerá o mesmo e o HeapSize adicional será adicionado ao Tamanho do Heap da geração antiga. Para igualar o tamanho do monte de Gen jovem e do monte de Gen velho , usar - XX: NewRatio=1-XX: - UseAdaptiveSizePolicy params.

java -jar -Xms4096M -Xmx6144M -XX:NewRatio=1 -XX:-UseAdaptiveSizePolicy pathToJarFile.jar

-XX: NewRatio = Tamanho do monte de Gen Antigo: cabeçote de Gen jovem (pode brincar com esta proporção para obter a sua proporção desejada).

 2
Author: Sahil Chhabra, 2017-11-20 08:47:02

Isto só funciona com a versão 64 bits de Java. Vá ao Painel de controle e clique no ícone Java. Na pequena janela do Painel de controlo Java, carregue na barra de menu Java e, em seguida, carregue no botão view.

Se tiver duas plataformas Java, desactive a versão anterior do Java, carregue em Parâmetros de execução campo de texto e escreva -Xmx1024m ou menos do que o tamanho da RAM. Não aumente o tamanho do heap igual ao da RAM caso contrário o seu sistema cairá.

 2
Author: madhu, 2018-01-04 17:39:45

Várias pessoas apontaram as respostas específicas para o tamanho do Monte com as opções jvm de -Xms e -Xms. Quero salientar que este não é o único tipo de opções de memória para a jvm. Especificamente se você está obtendo pilha sobre fluxos, então você vai querer aumentar o tamanho da pilha adicionando uma opção adicional como -Xss8m.

Para este problema, as opções jvm de algo como -Xms2g -Xmx6g -Xss8m seriam uma solução.

Estou a partilhar esta informação à medida que o meu google pesquisa como para aumentar a memória jvm me levou a esta solução, e as soluções não funcionaram com altas quantidades de alocação de memória. Uma vez que eu descobri para que as configurações específicas eram para, eu fui capaz de google como aumentar o tamanho da pilha e encontrou o param faltante. :) Hope this savings others time, as it would of saved me a Tonight of time. :)
 1
Author: James Oravec, 2017-05-30 04:19:43

Sim. Podes.

Você pode aumentar a sua memória heap para 75% da memória física (Heap de 6 GB) ou mais.

Uma vez que você está usando 64bit você pode aumentar o seu tamanho de heap para a quantidade desejada. No caso de você estar usando 32bit é limitado a 4GB.

$ java -Xms512m -Xmx6144m JavaApplication

Define-o com o tamanho inicial do heap para 512mb e o tamanho máximo do heapsize para 6GB.

Espero que ajude.. :)
 0
Author: Sarat Chandra, 2017-04-12 11:23:40