当前位置:  开发笔记 > 编程语言 > 正文

gradle守护程序的高内存使用率

如何解决《gradle守护程序的高内存使用率》经验,为你挑选了1个好方法。

我正在使用Gradle 2.5编译一个由5个模块组成的Java项目.为了加快速度,我还使用了gradle-daemon.但是,在编译期间,最多有18个gradle-daemon运行实例.编译完成后,仍然有15个守护进程实例.守护进程消耗大约600 MB的RAM.让许多守护进程在后台运行或gradle-daemon配置错误是正常的吗?

更新:我的操作系统是Debian Jessie.Java版本是Oracle Java 8.



1> 小智..:

按照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文件中设置.


感谢您这样做,但是我不同意“为JVM分配的内存越少,构建失败的风险就越高-显然。” -我的构建失败了,因为构建占用了太多内存,并且Docker映像配置为不允许更多。
推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有