Eclipse - java.lang.OutOfMemoryError: espace de tas Java
Dans Eclipse IDE, si votre programme consomme beaucoup de mémoire (chargement de données volumineuses) comme ceci:
Listlist = domainBo.findAllDomain(100000); for(Domain domain : list){ process(domain.getDomainName()); }
Il peut facilement atteindrejava.lang.OutOfMemoryError: Java heap space
:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at java.util.HashMap.(HashMap.java:209) at java.util.LinkedHashMap. (LinkedHashMap.java:181)
1. Solution - Arguments VM
Dans le menu Eclipse, cliquez surRun -> Run Configurations..
, sélectionnez l'application Java que vous souhaitez exécuter, cliquez sur l'ongletArguments
, mettez à jour les arguments de la VM avec les options suivantes
-Xms- Set initial Java heap size -Xmx - Set maximum Java heap size
Par exemple,-Xms512M -Xmx1024M
2. Erreur - eclipse.ini
Les paramètres de mémoire danseclipse.ini
sont alloués à Eclipse IDE uniquement, et non au programme que vous souhaitez exécuter. Une erreur très courante est la mise à jour de la taille du tas eneclipse.ini
et s'attend à ce qu'elle résout le problème de mémoire insuffisante ci-dessus.
Note
L'application Java, les scripts de construction Ant / Maven ou les cas de test unitaires sont exécutés en tant qu'outil externe d'Eclipse et n'héritent pas des paramètres de machine virtuelle dans eclipse.ini.
Mais, si votre Eclipse IDE est toujours en panne sans raison, vous pouvez essayer d'augmenter la taille du tas et la perm gen eneclipse.ini
.
/Users/example/Downloads/eclipse/Eclipse.app/Contents/MacOS/eclipse.ini
-startu openFile -showsplash //... -XX:MaxPermSize=512m -Xms512m -Xmx1024m //... -Xdock:icon=../Resources/Eclipse.icns -XstartOnFirstThread
P.S eclipse.ini is located in the Eclipse installation folder.