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

High memory usage by gradle daemon

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

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

按照 Antoniosss 的建议,我与开发人员取得了联系。事实证明,Gradle 实际上非常耗费资源。即使对于一个简单的 "Hello World" 应用程序,守护程序也可能使用高达 150 MB 甚至更多的内存。 也可以启动多个守护线程,只要它们 运行 在同一个 JVM 中。 用户端对 control/limit 内存使用的控制有限。 可以设置 GRADLE_OPTS 变量以便将 Xmx 选项传递给 JVM,例如,我设法使用以下设置构建我的 Android 项目:

$ export GRADLE_OPTS="-Xmx64m -Dorg.gradle.jvmargs='-Xmx256m -XX:MaxPermSize=64m'"

第一个 -Xmx 选项是为您在 CLI 中启动的 Gradle 设置的,第二个(在 -Dorg.gradle.jvmargs 之后)是 Gradle- 的 -Xmx 值守护进程。

您为 JVM 分配的内存越少,构建失败的风险就越高 - 显然。因此,您可能需要调整这些设置,直到它们适合您的目的。

这些设置也可以在 gradle.properties 文件中设置。