我正在使用Gradle 2.5编译一个由5个模块组成的Java项目.为了加快速度,我还使用了gradle-daemon.但是,在编译期间,最多有18个gradle-daemon运行实例.编译完成后,仍然有15个守护进程实例.守护进程消耗大约600 MB的RAM.让许多守护进程在后台运行或gradle-daemon配置错误是正常的吗?
更新:我的操作系统是Debian Jessie.Java版本是Oracle Java 8.
按照Antoniossss的建议,我与开发人员联系.事实证明,Gradle实际上是非常耗费资源的.即使对于一个简单的"Hello World"应用程序,该守护进程也可能使用高达150 MB甚至更多.也可以,只要它们在同一个JVM中运行,就会启动多个守护程序线程.用户侧控制/限制内存使用的控制有限.可以设置GRADLE_OPTS变量以将Xmx选项传递给JVM,例如,我设法使用以下设置构建我的Android项目:
$ export GRADLE_OPTS="-Xmx64m -Dorg.gradle.jvmargs='-Xmx256m -XX:MaxPermSize=64m'"
第一个-Xmx选项是为您在CLI中启动的Gradle设置的,第二个选项(在-Dorg.gradle.jvmargs之后)是Gradle-Daemon的-Xmx值.
您允许JVM的内存越少,构建失败的风险就越高 - 显然.因此,您可能需要调整这些设置,直到它们适合您的目的.
这些设置也可以在gradle.properties文件中设置.