我正在使用Gradle 2.5来编译一个包含5个模块的
Java项目.为了加快速度,我也使用gradle-daemon.但是,在编译期间,最多有18个gradle-daemon运行的实例.编译结束后,还有15个守护进程的实例.后台进程消耗大约600 MB的RAM.在后台运行这么多守护进程或者是配置失败的程序是否正常?
更新:
我的操作系统是Debian Jessie. Java版本是Oracle Java 8.
解决方法
根据Antoniossss的建议,我与开发人员联系.事实证明,毕业实际上相当资源匮乏.即使是一个简单的“Hello World”应用程序,守护进程可能使用的速度可达150 MB甚至更多.
同样重要的是,启动多个守护进程线程,只要它们在同一个JVM中运行.
控制/限制内存使用的用户方面只能进行有限的控制.
可以设置GRADLE_OPTS变量,以便将Xmx选项传递给JVM,例如,我设法使用以下设置构建我的 Android项目:
同样重要的是,启动多个守护进程线程,只要它们在同一个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文件中设置.