Eclipse - java.lang.OutOfMemoryError: пространство кучи Java

Eclipse - java.lang.OutOfMemoryError: пространство кучи Java

В Eclipse IDE, если ваша программа потребляет много памяти (загружает большие данные), вот так:

  List list = 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

eclipse-out-of-memory

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.