Как я могу предоставить компилятору Intellij больше места в куче?

Когда я делаю проект Intellij, я продолжаю получать следующую ошибку нехватки памяти.

Я уже увеличил размер кучи в idea.vmoptions:

-Xms128m
-Xmx2048m
-XX:MaxPermSize=1024m
-XX:ReservedCodeCacheSize=64m
-ea

Но я все еще получаю эту ошибку:

Information:The system is out of resources.
Information:Consult the following stack trace for details.
Information:java.lang.OutOfMemoryError: Java heap space
Information:    at com.sun.tools.javac.util.Position$LineMapImpl.build(Position.java:139)
Information:    at com.sun.tools.javac.util.Position.makeLineMap(Position.java:63)
Information:    at com.sun.tools.javac.parser.Scanner.getLineMap(Scanner.java:1105)
Information:    at com.sun.tools.javac.main.JavaCompiler.parse(JavaCompiler.java:512)
Information:    at com.sun.tools.javac.main.JavaCompiler.parse(JavaCompiler.java:550)
Information:    at com.sun.tools.javac.main.JavaCompiler.parseFiles(JavaCompiler.java:804)
Information:    at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:727)
Information:    at com.sun.tools.javac.main.Main.compile(Main.java:353)
Information:    at com.sun.tools.javac.main.Main.compile(Main.java:279)
Information:    at com.sun.tools.javac.main.Main.compile(Main.java:270)
Information:    at com.sun.tools.javac.Main.compile(Main.java:69)
Information:    at com.sun.tools.javac.Main.main(Main.java:54)
Information:    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Information:    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
Information:    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
Information:    at java.lang.reflect.Method.invoke(Method.java:597)
Information:    at com.intellij.rt.compiler.JavacRunner.main(JavacRunner.java:71)
Information:Compilation completed with 1 error and 0 warnings
Information:1 error
Information:0 warnings
Error:Compiler internal error. Process terminated with exit code 3

Что мне не хватает?


person michael    schedule 20.12.2011    source источник


Ответы (9)


Текущая версия:

Settings (Preferences на Mac) | Build, Execution, Deployment | Compiler | Размер кучи процесса сборки.

Старые версии:

Settings (Preferences на Mac) | Compiler | Java Compiler | Максимальный размер кучи.

Компилятор по умолчанию запускается в отдельной JVM, поэтому настройки кучи IDEA, заданные в idea.vmoptions, не влияют на компилятор.

person CrazyCoder    schedule 20.12.2011
comment
И после этого требуется перезагрузка :) - person cgl; 16.04.2013
comment
Я знаю, что это немного не по теме, но может спасти кого-то, если они наткнутся на это. У меня была та же проблема, но моя возникла из-за того, что я делал mvn install в IntelliJ. Решение состояло в том, чтобы изменить Settings | Maven | Runner | **VM Options** Я, должно быть, перепробовал все остальные настройки, пока не получил правильный. Надеюсь, это поможет кому-то. - person FuriousGeorge; 26.09.2013
comment
Я могу найти его до «Максимальный размер кучи». Нужно ли добавлять его в качестве дополнительного параметра командной строки? - person clankill3r; 24.04.2014
comment
@clankill3r попробуйте Settings | Compiler | Build process heap size. - person CrazyCoder; 24.04.2014
comment
Мне очень помог. Спасибо! - person Michal Gruca; 04.08.2014
comment
Для более поздних версий Intellij (у меня 2016.1.3) этот параметр называется Размер кучи процесса сборки (Мбайт) и находится в разделе «Настройки» | Сборка, выполнение, развертывание | Компилятор. - person tomger; 13.06.2016
comment
Мне удалось найти его в разделе «Настройки» («Настройки» на Mac) | Сборка, выполнение, развертывание | Компилятор | Компилятор ActionScript и Flex --› Размер кучи компилятора Intellij Ultimate Edition 2018 - person akshay; 17.10.2019

Начиная с IntelliJ 2016, это расположение File | Настройки | Сборка, выполнение, развертывание | Компилятор | Размер кучи процесса сборки.

введите описание изображения здесь

person Chin    schedule 09.04.2016
comment
Я изменил его на 2000 МБ, но это все равно не сработало для меня. - person R11G; 17.08.2019

У меня была аналогичная проблема со сборкой Ant (запущенной вручную из графического интерфейса IDEA). В моем случае было правильным решением щелкнуть правой кнопкой мыши задачу Ant, выбрать свойства и установить более высокое значение для полей ввода «Максимальное пространство кучи (МБ):» и «Максимальное пространство стека (МБ):».

введите описание изображения здесь

person Jan Němec    schedule 12.04.2017

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

1). В inteli перейдите в «Файл»> «Параметры настройки» и найдите параметр Vm. В поле «Параметры Vm для импортера» укажите значение -Xmx512m. Параметры настройки Intelij

2). Перейдите в панель управления. Выберите «Просмотр»: «Крупные значки», затем «Перейти к Java». Появится окно подсказки с именем панель управления java, затем перейдите к java Параметры виртуальной машины Java

выберите вариант просмотра. параметры просмотра Java

В настройках среды выполнения Java передайте параметры времени выполнения как -Xmx1024m.

3). Если приведенные выше параметры не работают, измените размер pom.xml.

person Jimy Ten    schedule 21.07.2018
comment
Почему вы отредактировали эту ссылку? Вы боитесь того, что произошло здесь? - person Glorfindel; 21.07.2018
comment
я дал правильный ответ, и я отдал должное другому веб-сайту, но все же я вижу два отрицательных голоса на мой ответ. и ответ, который я дал, практически правильный, с которым я столкнулся и решил его. - person Jimy Ten; 21.07.2018
comment
пожалуйста, дайте мне знать, если я могу отдать должное другому веб-сайту. - person Jimy Ten; 21.07.2018
comment
Это временное понижение было от меня. Если вы хотите отдать должное, укажите ссылку на точную страницу, на которой вы нашли информацию, а не на список руководств. - person Frenzy Li; 21.07.2018

GWT в Intellij 12

FWIW, я получал аналогичную ошибку с моим приложением GWT во время 'Build | Перестроить проект'.

Это было вызвано тем, что Intellij выполнял полную компиляцию GWT, что мне не понравилось, потому что это также очень длительный процесс.

Я отключил компиляцию GWT, сняв флажки модуля в разделе 'Структура проекта | Грани | GWT'.

В качестве альтернативы в этом месте также есть параметр «Максимальный размер кучи компилятора».

person Peter L    schedule 10.01.2013

Я столкнулся с ошибкой «java.lang.OutOfMemoryError: пространство кучи Java» при создании моего проекта с помощью команды установки maven.

Я смог избавиться от этого, изменив настройки maven runner.

Settings | Build, Execution, Deployment | Build Tools | Maven | Runner | VM options до -Xmx512m

person Jaison    schedule 24.04.2020

В моем случае ошибка была вызвана недостаточным объемом памяти, выделенной для «тестового» жизненного цикла maven. Это было исправлено добавлением <argLine>-Xms3512m -Xmx3512m</argLine> к:

<pluginManagement>
  <plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.16</version>
        <configuration>
            <argLine>-Xms3512m -Xmx3512m</argLine>

Спасибо @crazycoder за указание на это (а также за то, что в данном случае это не связано с IntelliJ).

Если ваши тесты разветвлены, они выполняются в новой JVM, которая не наследует параметры Maven JVM. Пользовательские параметры памяти должны быть предоставлены через средство запуска тестов в pom.xml, подробности см. в документации Maven, это имеет очень мало общего с IDE.

person Neil    schedule 10.02.2014

Мне нравится делиться откровением, которое у меня было. Когда вы создаете проект, Intellij Idea запускает процесс Java, который находится в его ядре (например, C:\Program Files\JetBrains\IntelliJ IDEA 2020.3\jbr\bin). Размер кучи процесса сборки, как упоминалось многими другими, изменяет размер кучи этого java-процесса. Однако основной java-процесс запускается позже java-процессом идеи, поэтому у него разные аргументы VM. Я заметил, что максимальный размер кучи этого процесса составляет 1/3 от java-процесса Idea, а минимальный размер кучи составляет половину от максимального (1/6). Чтобы округлить:

Когда вы устанавливаете 9 г кучи для размера кучи процесса сборки, фактический размер кучи для компилятора составляет максимум 3 г и минимум 1,5 г. И нет необходимости в перезагрузке.

PS: проверено на версии 2020.3

person Emre Türkiş    schedule 02.01.2021

Eсть

idea64.exe

стартер в

IntelliJ IDEA 13.1.5\bin

так что вы можете адресовать больше места.

person Julian Dehne    schedule 28.10.2014
comment
Этот ответ в некоторой степени правильный, хотя и не в контексте вопроса выше. idea64.exe дает вам больше постоянной памяти, используйте idea64.exe, если вы используете 64-битную ОС. Нашел это полезным, потому что 32-битный idea.exe вылетал из-за нехватки памяти во время сборки. - person Adil H. Raza; 18.04.2017