Подтвердить что ты не робот

Получение ошибки Gradle "Не удалось зарезервировать достаточно места для кучи объектов" постоянно в Intellij IDEA

Итак, у меня проблема с распределением памяти. Иногда это работает, а иногда и нет. Я прочитал эту тему и несколько раз пробовал совет. Иногда -Xms512m -Xmx768m работает, иногда -Xms256m -Xmx512m. Я устал от необходимости настраивать эту настройку в IntelliJ при настройке параметров Build, Execution, Deployment > Build Tools > Gradle > Gradle VM. Нет ли какой-либо настройки, которая решает эту проблему раз и навсегда?

У меня 16 ГБ ОЗУ на моем компьютере с Windows 7, я запускаю IntelliJ IDEA EAP 14 build 138.2210.3, 64-разрядную версию. Android Gradle build plugin v0.12.

Я подозреваю, что Gradle не работает в режиме 64 бит, иначе у него будет ~ 7 ГБ свободной памяти. Почему это не используется?

EDIT:

Я получил ту же ошибку в Visual Studio 2015 с кордорой 5.1.1 под Windows 10. См. Мое решение ниже.

4b9b3361

Ответ 1

Установка 64-битной Java решила его для меня

Ответ 2

Я получил ту же ошибку в Visual Studio 2015 с cordova 5.1.1 под Windows 10.

Чтобы решить проблему, установите эту переменную среды:

_JAVA_OPTIONS=-Xmx512M
  1. Щелкните правой кнопкой мыши на кнопке "Пуск" и откройте "Система".
  2. Найдите "Расширенные настройки системы" и откройте его.
  3. Нажмите кнопку "Переменные среды..."
  4. В системных переменных нажмите "Новый..."
  5. Имя новой переменной: _JAVA_OPTIONS
  6. Новое значение переменной: -Xmx512M
  7. Нажмите ОК
  8. Перезапустите Visual Studio, чтобы переменная была подобрана

Эта статья указывает мне правильное направление. Я немного изменил инструкции, чтобы они соответствовали Windows 10.

Надеюсь, это поможет кому-то!

Ответ 3

Хотя этот вопрос немного старше, я хотел бы придумать (возможную) причину проблемы: JVM запрашивает весь блок памяти при запуске. Если он не смог найти его, произошла ошибка "Не удалось сохранить...". Джон Папе написал в IBM devblog разъяснительную статью об этой проблеме: https://www.ibm.com/developerworks/community/blogs/aimsupport/entry/why_wont_my_jvm_start_with_this_heap_size?lang=en

Это решение проблемы для меня:

  • вариант a: использование 64-разрядной версии Java, поэтому для предоставления Java большей площади возможной свободной свободной памяти
  • вариант b: с 32-разрядной Java, использующей меньшую сумму XMX. В файле gradle.properties я просто использую org.gradle.jvmargs=-Xmx150m и Gradle не имеет проблем.

Ответ 4

Это происходит и со мной, и это сводит меня с ума. Возможно, доступная память (ram) фрагментирована. Хотя у вас достаточно свободной памяти, нет смежных 512 МБ блоков, все они фрагментированы на более мелкие блоки! Вот почему вы видите это "иногда".

Некоторые вещи стоит попробовать:

  • проверьте, нет ли у вас памяти, попытайтесь закрыть другие приложения. Это случается со мной иногда, даже если у меня все еще есть 3 ГБ бесплатно из моего 8 ГБ! 3GB может быть фрагментирован в блоках, размер которых меньше 512 МБ [ex: если у вас есть -Xmx512m]... Перезагрузка - это способ дефрагментации вашей памяти. Или закройте firefox, который освободит концерт; -)

  • Кроме того, удивительно, проверьте свое пространство подкачки [свободное место на диске]! Зависит от реализации машины /JVM/etc. Но если вы отстаете от места подкачки и ваша память фрагментирована, это может быть другой причиной.

  • понизите ваш -Xmx до -Xms128m -Xmx512m, чтобы было легче найти непрерывный блок свободной памяти [128 м]. Это может быть не очень хорошо, если gradle действительно требуется минимум 512 м. Учитывая, что мы говорим о gradle, проигнорируйте эту маркерную точку (может быть полезным советом для других случаев/стоит отметить).

  • дважды проверьте свой Xms/Xmx в ~/.gradle/ gradle.properties: org.gradle.jvmargs

  • используйте idea64.exe [64bit], и если вы считаете, что IDEA использует неправильный JDK [32bit], в последней Intellij IDEA [14.1.3 от этого написания], перейдите в "Настройки" → "Построить," Выполнение, развертывание "- > " Gradle ":" используйте оболочку по умолчанию "и выберите gradle JVM, который вы хотите (если вы считаете, что он использует неправильный, вы увидите его здесь".

  • Наконец, это всего лишь предположение, но: в предыдущей пуле я задаюсь вопросом, выбираете ли вы "использовать проект JDK", если это облегчает поиск смежной памяти. Я не уверен, что это означает, что gradle будет использовать intestedij IDEA уже зарезервированный блок памяти. Таким образом, вместо того, чтобы иметь два процесса, у вас есть только один, и вы можете зарезервировать большой блок памяти при запуске программы IDEA. Но я не уверен, насколько это точно, если вы хотите предложить Intellij...

Я согласен с тобой, у меня никогда не было проблем с памятью с IDEA [нет проблем во ВСЕХ] до тех пор, пока интеграция gradle не появилась.

Ответ 5

В моем случае я открыл слишком много вещей. Освобождение памяти заставило ее работать.

Ответ 6

В вашей папке Android есть файл gradel.properties и добавьте следующие строки:

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

Я столкнулся с этим, используя Intellij и Flutter. Еще одно свойство, которое вы можете найти полезным, это объявление о том, где находится JDK.

org.gradle.java.home=C:\\Your\\JDK\\path