web-dev-qa-db-fra.com

Éviter l'erreur de taille initiale de la mémoire de mémoire

J'exécute un Java code avec la commande suivante:

$ Java -Xms4G -Xmx4G myjavacode

Mon CPU RAM capacité est de 6 Go.

Cependant, il manque toujours d'exécuter me donner ce message d'erreur:

Invalid initial heap size: -Xms5G
The specified size exceeds the maximum representable size.
Could not create the Java virtual machine

Y a-t-il un moyen de configurer Java option afin que nous puissions exécuter le code?

20
neversaint

Vous avez dépassé la taille maximale du tas de votre JVM. Ceci est à la fois dépendant de la JVM et du système d'exploitation. Dans la plupart des systèmes 32 bits, la valeur maximale sera de 2 Go, quelle que soit la mémoire physique disponible.

17
kgiannakakis

Par défaut Java fonctionnera en mode 32 bit. Assurez-vous de lui donner l'option -D64 pour la mettre en mode 64 bits. Une fois en mode 64 bits, vous ne devriez pas avoir de problèmes. alloué une JVM de 6 Go.

11
brianegge

En réalité, la taille maximale de la mémoire sur les systèmes 32 bits peut varier, étant un maximum de 4 Go, mais 2 Go est une valeur commune. Il est souvent possible de relier votre noyau pour augmenter ceci à 3 ou 3,5 Go. Bien entendu, la question est que vous n'avez tout simplement pas l'espace d'adressage pour cartographier plus de mémoire. Avez-vous essayé une machine de 64 bits?

Aussi, rappelez-vous de régler votre ulimit plus haut avant de le faire.

4
Curt J. Sampson