Высокое использование памяти демонами gradle

Я использую Gradle 2.5 для компиляции Java-проекта, который состоит из 5 модулей. Чтобы ускорить работу, я также использую gradle -daemon. Однако во время компиляции доступно до 18 экземпляров gradle -daemon. После завершения компиляции осталось еще 15 экземпляров демона. Процесс демонов потребляет около 600 МБ ОЗУ. Нормально ли, что многие демоны работают в фоновом режиме или неправильно настроены gradle -demon?

UPDATE: Моя операционная система - Debian Jessie. Версия Java - это Oracle Java 8.

Ответы

Ответ 1

Следуя совету Антониосса, я связался с разработчиком. Как оказалось, 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.