Augmenter la taille des tas en Java

je travaille sur un serveur Windows 2003 (64 bits) avec 8 Go de RAM. Comment augmenter la mémoire maximum? J'utilise le drapeau -Xmx1500m pour augmenter la taille du tas à 1500 Mo. Puis-je augmenter la mémoire tas à 75% de la mémoire physique (6 Go tas)?

236
demandé sur Joachim Sauer 2009-10-14 14:12:58

11 réponses

vous pouvez augmenter à 4 Go sur un système 32 bits. Si vous êtes sur un système 64 bits, vous pouvez aller plus haut. Pas besoin de vous inquiéter si vous avez choisi incorrectement, si vous demandez 5g sur un système de 32 bits java se plaindra d'une valeur invalide et quittera.

comme d'autres l'ont affiché, utilisez les drapeaux de ligne cmd-e.g.

java -Xmx6g myprogram

vous pouvez obtenir une liste complète (ou presque) en tapant java-X.

284
répondu Steve B. 2009-10-14 12:48:31

il est possible d'augmenter la taille des tas alloués par la JVM en utilisant les options de ligne de commande Ici, nous avons 3 options

-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

dans la ligne ci-dessus nous pouvons fixer le minimum de tas à 16mb et le maximum de tas 64mb

145
répondu Karthik Reddy 2013-03-21 12:23:38

sur un JVM de 32 bits, la plus grande taille de tas que vous pouvez théoriquement définir est de 4 Go. Pour utiliser une plus grande taille de tas, vous devez utiliser un 64-bit JVM. Essayez ce qui suit:

java-Xmx6144M-d64

le drapeau-d64 est important car il indique à la JVM de fonctionner en mode 64 bits.

25
répondu Kevin 2009-10-14 12:59:10

il est possible d'augmenter la taille des tas alloués par la JVM dans eclipse directement In eclipse IDE goto

Exécuter---->Run Configurations---->Les Arguments

Entrez -Xmx1g(Il est utilisé pour définir la taille maximale comme Xmx256m ou Xmx1g...... m-->mo g--->go)

10
répondu Karthik Reddy 2013-03-20 08:11:44

java-D64-Xms512m-Xmx4g HelloWorld

où, -d64: activera JVM 64 bits -Xms512m: définit la taille initiale du tas à 512 MB -Xmx4g: définit la taille maximale du tas à 4 Go (ici le nom du fichier java est : HelloWorld.java)

8
répondu Sumit Deshinge 2013-07-12 07:03:12

puis-je augmenter la mémoire de tas à 75% de mémoire physique (tas de 6 Go).

Oui, vous pouvez. En fait, vous pouvez augmenter de plus de la quantité de mémoire physique, si vous le souhaitez.

si c'est une bonne idée de faire cela dépend de combien d'autre fonctionne sur votre système. En particulier, si l '"ensemble de travail" des applications et des services qui sont actuellement en cours d'exécution dépasse de manière significative la mémoire, votre système est susceptible de "thrash", passer beaucoup de temps à déplacer les pages de mémoire virtuelle vers et à partir du disque. L'effet net est que le système est horriblement lent.

6
répondu Stephen C 2009-10-14 10:16:48

veuillez utiliser la commande ci-dessous pour changer la taille du tas en 6 Go

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

vous pouvez augmenter la taille de tas en passant les paramètres JVM - Xms et - Xmx comme ci-dessous:

Pour Les Fichiers Jar:

java -jar -Xms4096M -Xmx6144M jarFilePath.jar

Pour Les Fichiers Java:

 java -Xms4096M -Xmx6144M ClassName

les paramètres ci-dessus augmentent la initial Heapsize (- Xms) à 4GB (4096 MB) et MaxHeapSize (- Xmx) à 6GB (6144 MB).

mais, le jeune génération la taille du tas restera la même et la taille du tas supplémentaire sera ajoutée à la vieille génération Taille du tas. Pour égaliser la taille de jeune Gén tas et Vieux Gén tas , utilisez - XX:NewRatio=1-XX:-UseAdaptiveSizePolicy params.

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

- XX:NewRatio = Old Gen Heap Size : Young Gen HeapSize (vous pouvez jouer avec ce ratio pour obtenir votre ratio désiré).

2
répondu Sahil Chhabra 2017-11-20 08:47:02

cela ne fonctionne qu'avec la version 64 bits de Java. Allez dans le Panneau de configuration et cliquez sur L'icône Java. Sur la petite fenêtre du Panneau de configuration Java, cliquez sur la barre de menu Java, puis cliquez sur le bouton view .

si vous avez deux plates-formes Java, désactivez la version précédente de Java, puis cliquez sur paramètres D'exécution champ de texte et écrivez -Xmx1024m ou moins que la taille de la RAM. N'augmentez pas la taille de tas égale à RAM sinon votre système accident.

2
répondu madhu 2018-01-04 17:39:45

plusieurs personnes ont souligné les réponses spécifiques pour la taille du tas avec les options jvm de -Xms et -Xms . Je tiens à souligner que ce n'est pas le seul type d'options de mémoire de la jvm. Spécifiquement si vous obtenez des flux de pile, alors vous voudrez augmenter la taille de la pile en ajoutant une option supplémentaire comme -Xss8m .

pour ce problème, les options jvm de quelque chose comme -Xms2g -Xmx6g -Xss8m serait une solution.

je partage cette information car mes recherches sur google sur la façon d'augmenter la mémoire jvm m'ont amenée à cette solution, et les solutions ne fonctionnaient pas avec des quantités élevées d'allocation de mémoire. Une fois que j'ai compris à quoi servaient les paramètres spécifiques, j'ai pu chercher sur google comment augmenter la taille de la pile et trouver le param manquant. :) J'espère que cela permet d'économiser d'autres temps, il aurait du me sauve des tonnes de temps. :)

1
répondu James Oravec 2017-05-30 04:19:43

Oui. Vous Pouvez.

vous pouvez augmenter votre mémoire tas à 75% de la mémoire physique (6 Go tas) ou plus.

comme vous utilisez 64bit vous pouvez augmenter la taille de votre tas à votre quantité désirée. Dans le cas où vous utilisez 32bit, il est limité à 4GB.

$ java -Xms512m -Xmx6144m JavaApplication

vous fixe avec la taille initiale du tas à 512mb et la taille maximale du tas à 6 Go.

J'espère Aider.. :)

0
répondu Sarat Chandra 2017-04-12 11:23:40