Tout d'abord, j'ai une boîte avec 8 Go de mémoire vive, donc je doute que la mémoire totale soit le problème. Cette application fonctionne bien sur des machines avec 6 Go ou moins.
J'essaie de réserver 3GB d'espace en utilisant -Xmx3G sous "VM Arguments" ; dans Run Configurations dans Eclipse.
Chaque fois que j'essaie de réserver plus de 1500mb, j'obtiens cette erreur : "Error occurred during initialization of VM ; Could not reserve enough space for object heap" en utilisant -Xmx3G.
Que se passe-t-il ici ?
En fait, il ne s'agit pas d'un problème spécifique à Eclipse, mais d'un problème général de Java sur Windows. général de Java sur Windows. Cela est dû à la façon dont la JVM alloue la mémoire sous Windows. Windows ; elle insiste sur l'allocation d'une portion contiguë de mémoire, ce que ce que Windows ne peut souvent pas fournir, même s'il y a suffisamment de morceaux séparés pour pour satisfaire la demande d'allocation. Il existe des utilitaires qui essaient d'aider Windows à "défragmenter" sa mémoire, ce qui devrait, en théorie, aider cette situation ; mais je ne les ai pas vraiment essayés. Je ne les ai pas vraiment essayés et je ne peux donc pas me prononcer sur leur efficacité. Une chose que j'ai parfois entendue et qui pourrait aider est de redémarrer Windows et, avant de lancer d'autres applications, de lancer l'application Java qui a besoin d'un gros morceau de mémoire. gros morceau de mémoire. Si vous avez de la chance, Windows n'aura pas encore fragmenté son espace mémoire et Java obtiendra l'espace nécessaire. espace mémoire et Java obtiendra le bloc contigu qu'il demande.
Quelque part sur l'internet, il y a des explications et des analyses plus techniques de ce problème. et des analyses plus techniques de ce problème, mais je n’ai pas de références sous la main.
J'ai cependant trouvé ceci, qui semble utile : https://stackoverflow.com/a/497757/639520
Assurez-vous qu'Eclipse exécute réellement la même JVM que celle que vous pensez qu'il exécute. Si vous utilisez java dans votre navigateur Web, il est probable qu'une version 32 bits circule également et qu'elle prenne le dessus si elle a été installée ou mise à jour récemment.
Pour être absolument sûr, je recommande d'ajouter ces deux lignes à votre fichier eclipse.ini
en haut :
-vm
C:/Java/jdk1.6.0_27/bin
...où sur ma machine C:/Java/jdk1.6.0_27/bin
où se trouve la JVM que je sais être 64-bit. Assurez-vous d'avoir le dossier bin
à cet endroit.
(En bonus, sous Windows 7, cela vous permet également d'épingler l'onglet, c'est pourquoi j'ai dû le faire pour mon propre usage).