Eclipse - java.lang.OutOfMemoryError: пространство кучи Java
В Eclipse IDE, если ваша программа потребляет много памяти (загружает большие данные), вот так:
Listlist = domainBo.findAllDomain(100000); for(Domain domain : list){ process(domain.getDomainName()); }
Он может легко попасть вjava.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. Решение - аргументы ВМ
В меню Eclipse щелкнитеRun -> Run Configurations..
, выберите приложение Java, которое вы хотите запустить, щелкните вкладкуArguments
, обновите аргументы виртуальной машины следующими параметрами
-Xms- Set initial Java heap size -Xmx - Set maximum Java heap size
Например,-Xms512M -Xmx1024M
2. Ошибка - eclipse.ini
Параметры памяти вeclipse.ini
выделены только для Eclipse IDE, а не для программы, которую вы хотите запустить. Очень распространенной ошибкой является обновление размера кучи вeclipse.ini
, и ожидается, что она решит указанную выше проблему нехватки памяти.
Note
Приложение Java, сценарии сборки Ant / Maven или примеры модульных тестов запускаются как внешний инструмент из Eclipse и не наследуют настройки виртуальной машины в eclipse.ini.
Но если ваша Eclipse IDE всегда выходит из строя без причины, вы можете попробовать увеличить размер кучи и perm gen вeclipse.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.