Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 24728|Répondre: 1

[Source] Je n’ai pas pu réserver assez d’espace pour un tas d’objets de 2097152 Ko.

[Copié le lien]
Publié sur 24/07/2017 10:43:36 | | | |
Erreur : Impossible de réserver assez d’espace pour un tas d’objets de 2097152 Ko

J’ai lancé activemq et signalé une erreur, causée par une allocation trop élevée, donc lors de l’allocation de mémoire MQTT, il faut déterminer cela en combinant la taille de la mémoire serveur (utiliser free -g) et en vérifiant si JDK prend en charge la taille de mémoire.

Paramètres de la JVM

Paramètres principaux :
-Xms : Taille initiale de la mémoire
-XMX : Taille maximale de mémoire
-Xmn : Taille de génération plus jeune

Utilisez la commande Java -Xmx2047M -version pour voir si elle est conforme :


Solution:

Démarrer - > Panneau de configuration - > Système - > Paramètres avancés - > Variables d’environnement - > Variables système

Nouvelle variable :
Nom de la variable : _JAVA_OPTIONS   
Valeur variable : -Xmx1G






Précédent:MySQL interroge une table sans nombre vide d’enregistrements
Prochain:La différence entre serveur et client de la JVM de la machine virtuelle Java
 Propriétaire| Publié sur 24/07/2017 10:45:37 |
Je travaille récemment sur un programme pour Java. À l’origine, j’ai toujours aimé la gestion de la mémoire de Java, pas besoin de s’inquiéter d’allouer la mémoire, il suffit d’alloquer, le collecteur d’ordures récupère la mémoire pour vous. Le programme est maintenant développé avec une grande quantité de données, et pour plus de rapidité, je vais charger toutes les informations en mémoire, ce qui garantira une réponse rapide. Je compte encore la mémoire à répétition, en pensant à ma propre quantité de données, ce qui devrait suffire au début (ma machine a de la mémoire 4G, bien que Windows reconnaisse le 3,5G, mais ça devrait aller comparé à mon volume de données actuel).

De manière inattendue, le programme de la première expérience a duré quelques heures et a rencontré une exception de mémoire. En regardant mes propres paramètres de VM, j’ai mis -Xms512M -Xmx1024M. Sans y réfléchir, je l’ai directement changé en -Xms512M -Xmx2048M, et le résultat a été que je n’ai pas pu réserver assez d’espace pour le tas d’objets. Le programme ne peut pas se lever. Ce n’est qu’à ce moment-là que j’ai réalisé qu’il y avait encore une limite à la mémoire maximale initiale. J’ai cherché sur Internet et trouvé de nombreux articles abordant ce sujet. Enfin, j’ai trouvé l’article le plus utile sur le forum DEV2DEV de BEA

Ici, le modérateur YuLimin a passé le test et est arrivé à la conclusion suivante :

Version JVM de l’entreprise Client à mémoire maximale (méga) Serveur à mémoire maximale (méga)

DIM 1.5.x 1492 1520

SUN. 1.5.5 (Linux) 2634 2660

DIM 1.4.2 1564 1564

SOL 1.4.2 (Linux) 1900 1260

IBM 1.4.2(Linux) 2047 N/A

BEA JRockit 1.5 (U3) 1909 1902

Je l’utilise JDK1.6.0_05 maintenant, je l’ai testé. Le plus gros problème dans l’état client, c’est que mon JDK ne reconnaît pas le paramètre -Server et ne peut pas tester l’état du serveur. Les estimations sont à peu près les mêmes.

DIM 1.6.0 1442 N/d

Il semble qu’il soit impossible d’utiliser une grande mémoire en Java. Et le dicton général est que si la mémoire est trop grande, le temps de collecte des déchets sera long. C’est aussi compréhensible, généralement collecté lorsque la mémoire n’est pas suffisante, que la mémoire 2G est bien sûr beaucoup plus lente que la 1G, et qu’il y a plus d’objets mémoire, la relation estimée augmente exponentiellement.

Vous trouverez ci-dessous les méthodes de test et les dossiers de test de YuLimin.

Méthode de test : Utilisez la commande java -XmxXXXXM -version pour tester en ligne de commande, puis augmentez progressivement la valeur de XXXX ; si cela s’exécute normalement, cela signifie que la taille de mémoire spécifiée est disponible, sinon un message d’erreur sera imprimé.
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com