web-dev-qa-db-fra.com

Obtenir l'erreur Gradle "Impossible de réserver suffisamment d'espace pour le tas d'objets" constamment dans Intellij IDEA

J'ai donc un problème d'allocation de mémoire. Parfois cela fonctionne et parfois non. J'ai lu ce fil et essayé le conseil plusieurs fois. Parfois, -Xms512m -Xmx768m fonctionne, parfois -Xms256m -Xmx512m. J'en ai marre de devoir ajuster ce paramètre dans IntelliJ sous le paramètre Build, Execution, Deployment > Build Tools > Gradle > Gradle VM. N'y a-t-il aucun paramètre qui résout ce problème une fois pour toutes?

J'ai 16 Go de RAM sur mon ordinateur Windows 7, j'utilise IntelliJ IDEA EAP 14 build 138.2210.3, version 64 bits. Module d'extension Android Gradle v0.12. 

Je soupçonne que Gradle ne fonctionne pas en mode 64 bits, sinon il aurait environ 7 Go de mémoire libre pour se nourrir. Pourquoi n'utilise-t-il pas cela?

MODIFIER:

J'ai eu la même erreur dans Visual Studio 2015 avec cordova 5.1.1 sous Windows 10. Voir ma solution ci-dessous.

25
Nilzor

L'installation de Java 64 bits l'a résolu pour moi

24
Nilzor

J'ai eu la même erreur dans Visual Studio 2015 avec cordova 5.1.1 sous Windows 10.

Pour résoudre le problème, définissez cette variable d'environnement:

_Java_OPTIONS=-Xmx512M
  1. Faites un clic droit sur le bouton de démarrage et ouvrez "Système"
  2. Recherchez "Paramètres système avancés" et ouvrez-le.
  3. Cliquez sur le bouton "Variables d'environnement ..." 
  4. Dans les variables système, cliquez sur "Nouveau ..." 
  5. Nouveau nom de la variable: _Java_OPTIONS 
  6. Nouvelle valeur de variable: -Xmx512M
  7. Cliquez sur OK
  8. Redémarrez Visual Studio pour que la variable soit récupérée

This Article me dirige dans la bonne direction. J'ai modifié les instructions un peu, afin qu'elles correspondent à Windows 10.

J'espère que ça aide quelqu'un!

49
Bjoerg

Bien que cette question soit un peu plus ancienne, j'aimerais proposer la cause (possible) du problème: la machine virtuelle demande un bloc de mémoire entier au démarrage. S'il ne peut pas le trouver, l'erreur "Impossible de réserver ..." se produit. John Pape a écrit un article instructif dans le devblog d’IBM sur ce problème: https://www.ibm.com/developerworks/community/blogs/aimsupport/entry/why_wont_my_jvm_start_with_this_heap_size?lang=fr

Ceci résout le problème pour moi:

  • variante a: utilisation d'une version 64 bits de Java, afin de donner à Java une plus grande surface possible de mémoire libre connectée
  • variante b: avec Java 32 bits utilisant une quantité XMX plus petite. Dans le fichier gradle.properties, j’utilise simplement org.gradle.jvmargs=-Xmx150m et Gradle n’a aucun problème.
11
deR_Ed

Cela m’arrive aussi et cela me rend fou. Il se peut que la mémoire (RAM) disponible soit fragmentée. Bien que vous ayez assez de mémoire libre, il n'y a pas de blocs contigus de 512 Mo disponibles, ils sont tous fragmentés en blocs plus petits! C'est pourquoi vous ne le voyez que "parfois".

Quelques choses à essayer:

  • vérifiez si vous avez peu de mémoire, essayez de fermer les autres applications. Cela m’arrive parfois même si j’ai encore un bon 3 Go libre sur mes 8 Go! Ces 3 Go peuvent être fragmentés en blocs de moins de 512 Mo [ex: si vous avez -Xmx512m] ... Le redémarrage est un moyen de défragmenter votre mémoire. Ou fermez firefox, ça libérera un emploi ;-)

  • aussi, étonnamment, vérifiez votre espace d'échange [espace disque libre]! Dépend de l'implémentation machine/JVM/etc. Mais si vous manquez d'espace swap et que votre mémoire est fragmentée, cela pourrait être une autre cause.

  • abaissez votre -Xmx à peut-être -Xms128m -Xmx512m pour faciliter la recherche d'un bloc contigu de mémoire libre [128m]. Cela pourrait ne pas être une bonne idée si Gradle a vraiment besoin de 512m minimum. Étant donné que nous parlons de grade, ignorez ce point (cela pourrait être une astuce utile pour d’autres cas/à noter).

  • vérifiez votre Xms/Xmx dans l'attribut ~/.gradle/gradle.properties: org.gradle.jvmargs

  • utilisez idea64.exe [64bit] et si vous pensez que IDEA utilise le mauvais JDK [32bit], dans le dernier Intellij IDEA [14.1.3 à compter de cette écriture], allez à "Paramètres" -> "Build, Execution, Deployment" -> "Gradle": "utilisez le wrapper par défaut" et sélectionnez la JVM Gradle de votre choix (si vous pensez qu'elle utilise la mauvaise, vous la verrez ici ".

  • enfin, ce n’est qu’une hypothèse, mais dans la puce précédente, je me demande si vous sélectionnez "utiliser le projet JDK", si cela facilite la recherche de mémoire contiguë. Je ne sais pas si cela signifie que Gradle utilisera le bloc de mémoire déjà réservé d’intelli IDEA. Ainsi, au lieu d'avoir deux processus, vous n'en avez qu'un et vous pouvez réserver un bloc de mémoire plus important au démarrage de IDEA. Mais je ne suis pas sûr que ce soit exact si c'est une option à suggérer à Intellij ...

Je suis d'accord avec vous, je n'ai jamais eu de problèmes de mémoire avec IDEA [enfin, pas de problèmes AT ALL] tant que l'intégration de Gradle n'est pas apparue. 

2
Pierre

Dans mon cas, j'avais trop de choses ouvertes. Libérer de la mémoire a fait que ça fonctionne.

0

Dans votre dossier Android, il y a un fichier gradel.properties et ajoutez les lignes suivantes:

org.gradle.jvmargs=-XX\:MaxHeapSize\=256m -Xmx256m

Je me suis heurté à cela en utilisant Intellij et Flutter. Une autre propriété que vous pouvez trouver utile d’ajouter est de déclarer où se trouve le JDK.

org.gradle.Java.home=C:\\Your\\JDK\\path
0
Ekhtiar