【问题标题】:How to force Intellij IDEA to use only one gradle daemon?如何强制 Intellij IDEA 只使用一个 gradle 守护进程?
【发布时间】:2016-04-18 13:28:52
【问题描述】:

我知道它可能看起来像 How to disable Gradle daemon in IntelliJ Idea? 的副本,但我不想完全禁用 gradle 守护程序。我只想使用一个守护进程,而不是太多。

我遇到的问题是,要成功运行一些 gradle 任务,我必须为 gradle 提供大约 2GB 的 RAM。而我的系统只有 8GB 内存。

问题是当我执行某些操作时(我认为它是“刷新 gradle 项目”,其中有 2 个) - 我有时会运行 2 个或更多 gradle 守护程序。每个消耗 2GB 内存。

是否可以只使用一个守护程序或以某种方式自动停止那些额外的守护程序?

【问题讨论】:

    标签: java gradle intellij-14 gradle-daemon


    【解决方案1】:

    您可以使用gradlew --stop 停止所有当前正在运行的守护进程。只有在必要时才会创建新的恶魔。如果 e。 G。使用不同的 Java 版本或需要不同的守护程序参数等等。您也许可以使用 Sysinternals ProcessExplorer 并比较这两个进程以找出它们的不同之处,从而找出创建两个进程的原因。

    【讨论】:

    • 这个问题似乎是由使用 2 个不同的 gradle 版本引起的,但我不知道为什么会这样。
    • 删除第二个不必要的 gradle 项目后(我之前认为它不会导致任何问题)两个 gradle 守护进程的命令行参数是相同的。所以我仍然不知道为什么它使用 2 个守护进程,一个用于“刷新 gradle 项目”,一个用于运行 gradle 任务。
    • 这可能是因为gradle tooling API 用于刷新gradle 项目而项目gradle wrapper 用于执行任务,但我不确定。如果 Java 版本和参数相同,我会认为只应该启动一个守护进程。
    • 这很可能是原因,但我能做些什么吗?
    • 如果是,我猜不是。据我所知,工具 API 只能通过守护进程使用。好吧,你可以阻止你的“正常”构建使用守护进程。如果我没看错的话,它仍然会在您为内存大小配置 jvm 属性时启动一个,但是如果您明确禁用该守护程序,它将不会继续运行。这样可以节省内存,因为守护程序将在任务完成后退出,但构建会慢一些。
    猜你喜欢
    • 2014-10-14
    • 2011-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-17
    • 1970-01-01
    相关资源
    最近更新 更多