Высокое использование памяти демоном gradle
Я использую Gradle 2.5 для компиляции проекта Java, который состоит из 5 модулей. Чтобы ускорить процесс, я также использую демона gradle. Однако во время компиляции запускается до 18 экземпляров демона gradle. После завершения компиляции осталось еще 15 экземпляров демона. Процесс демонов потребляет около 600 МБ ОЗУ. Это нормально, если в фоновом режиме работает так много демонов, или демон gradle-s неправильно настроен?
ОБНОВЛЕНИЕ: Моя операционная система - Debian Jessie. Версия Java - Oracle Java 8.
2 ответа
Следуя совету Antoniossss, я связался с разработчиком. Как оказалось, Gradle на самом деле довольно голоден. Даже для простого приложения "Hello World" демон может очень хорошо использовать до 150 МБ и, возможно, даже больше. Также хорошо, что несколько потоков демонов запускаются, если они работают в одной и той же JVM. Существует только ограниченный контроль со стороны пользователя для контроля / ограничения использования памяти. Можно установить переменную GRADLE_OPTS, чтобы передать параметры Xmx в JVM, например, мне удалось построить свой проект Android со следующими настройками:
$ export GRADLE_OPTS="-Xmx64m -Dorg.gradle.jvmargs='-Xmx256m -XX:MaxPermSize=64m'"
Первый параметр -Xmx устанавливается для Gradle, который вы запускаете в CLI, второй (после -Dorg.gradle.jvmargs) является значением -Xmx для Gradle-Daemon.
Чем меньше памяти вы оставляете для своей JVM, тем выше риск сбоя сборки - очевидно. Поэтому вам, возможно, придется настроить эти параметры, пока они не будут соответствовать вашим целям.
Эти настройки также можно установить в файле gradle.properties.
Эта проблема устранена, и проблема успешно устранена. Вам необходимо установить переменные среды и отключить защитную стену прошивки. Я прилагаю URL-адрес для подробного ответа.
Для полного пошагового руководства перейдите по этой ссылке: Подробный ответ