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)?
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.
É 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
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.
É 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)
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)
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.
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"
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).
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á.
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.
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.. :)