Java >> Tutoriel Java >  >> Java

Impossible de réserver suffisamment d'espace pour le tas d'objets

Les programmeurs débutants et expérimentés ont rencontré cette erreur à un moment donné de leur vie - "Impossible de réserver suffisamment d'espace pour le tas d'objets . C'est énervant quand on a du vrai travail à faire ! L'erreur est déclenchée lorsque le processus Java n'est pas en mesure de créer une machine virtuelle en raison d'un manque d'espace mémoire.

La modification de la taille de la mémoire requise pour l'exécution de la JVM peut résoudre le problème. Dans cet article, nous examinerons de plus près l'erreur ainsi que ses solutions.

Qu'est-ce que l'erreur "Impossible de réserver suffisamment d'espace pour le tas d'objets" ?

La taille du tas correspond à l'espace mémoire fourni pour le stockage des objets Java. Cette taille de tas dépend de certains facteurs, notamment la version du bit JVM, le matériel système et le système d'exploitation. Le Xmx et VM Xms les arguments peuvent être utilisés pour allouer la taille de tas maximale et minimale.

Les 3 principales causes de cette erreur sont -

  • L'application Java a été exécutée sans spécifier correctement la taille de segment de mémoire nécessaire
  • La taille de segment de mémoire spécifiée est supérieure à la mémoire physique de votre système
  • La taille de tas maximale mentionnée est supérieure à la taille de tas de la JVM

Comment corriger l'erreur de taille de tas ?

Les moyens de se débarrasser définitivement de cette erreur sont –

  1. Mentionnez la taille du tas au préalable

Vous pouvez le faire avec la commande java -Xmx512M AppName . Habituellement, cette erreur se produit dans la JVM 32 bits car elle nécessite un espace libre contigu dans la mémoire pour exécuter des applications. De plus, l'utilisation d'une JVM 64 bits au lieu de 32 bits est une meilleure option.

  1. Spécifiez une taille de tas inférieure à la mémoire de votre système

Supposons que vous disposiez de 2 Go de RAM. Spécifiez ensuite une taille de tas inférieure à celle-ci à l'aide de la commande ci-dessous :

java -Xms1336M -Xmx1336M AppName

Une autre façon de résoudre le "Impossible de réserver suffisamment d'espace pour le tas d'objets erreur, dans ce cas, est en mentionnant la taille du tas dans la variable d'environnement Options Java. Pour cela, allez dans Panneau de configuration>Système>Avancé>Variables d'environnement>Variables système . Créez ensuite un nouveau nom de variable _JAVA_OPTIONS avec taille de tas -Xmx256M .

  1. Mentionner une taille de tas inférieure à la taille de la JVM

Afin d'avoir suffisamment d'espace libre pour exécuter votre application en douceur, spécifiez une taille de tas inférieure à l'aide de cette commande -

java -Xms1336M -Xmx1336M AppName

Assurez-vous de vérifier la mémoire déjà affectée et les tailles de tas avant de les modifier. Il est préférable d'utiliser la version 64 bits de Java pour éviter le

"Impossible de réserver suffisamment d'espace pour le tas d'objets Erreur.


Balise Java