Как я могу дать компилятору 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

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

11 ответов

Решение

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

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

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

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

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

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

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

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

1). В Inteli перейдите в File> Setting Option и найдите Vm Option. В поле Vm Option для Importer укажите значение -Xmx512m. Параметры настройки Intelij

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

выберите опцию просмотра. Параметры просмотра Java

В Java Runtime Environment Настройка передачи Выполнить параметры времени как -Xmx1024m.

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

У меня была похожая проблема со сборкой Ant (запущена вручную из IDEA GUI). В моем случае было правильное решение - щелкнуть правой кнопкой мыши задачу Ant, выбрать свойства и установить более высокие значения для полей ввода "Максимальное пространство кучи (Мб):" и "Максимальное пространство стека (Мб):".

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

GWT в Интеллий 12

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

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

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

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

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

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

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

В Android Studio 4.2 или более новой версии Arctic fox вы выберете параметр «Внешний вид и поведение».

  1. Windows: файл> настройки> внешний вид и поведение> системные настройки> настройки памяти.
  2. Mac: файл> настройки> внешний вид и поведение> системные настройки> настройки памяти.

https://stackru.com/images/650bcaa0eb81a0437908df271daa5fa3709ae998.png

В моем случае ошибка была вызвана нехваткой памяти, выделенной для "тестового" жизненного цикла 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.

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

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

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

Ссылка на документацию IntelliJ по настройке пользовательских параметров

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

E сть

idea64.exe

стартер в

IntelliJ IDEA 13.1.5\bin

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

Другие вопросы по тегам