【问题标题】:Some ./gradlew commands are holding memory (through java processes)一些 ./gradlew 命令正在占用内存(通过 java 进程)
【发布时间】:2022-08-10 23:23:08
【问题描述】:

我意识到当我运行./gradlew 任务时,任务完成后,系统仍然保留使用的内存。

例子:

  • 初始内存使用:

  • 在我运行./gradlew testBuildVariant1UnitTest 任务后:

    并创建了一个消耗 gbs 内存的新 Java 进程

  • 在我运行第二个./gradlew testBuildVariant2UnitTest 任务后:

    并创建了一个消耗 gbs 内存的新 Java 进程


在我手动终止 java 进程或运行以下命令之前,内存不会释放:

./gradlew --stop

这是预期的行为吗?在运行./gradlew 任务后,我可以做些什么来自动释放内存?

    标签: android gradle memory android-gradle-plugin gradlew


    【解决方案1】:

    是的,这是意料之中的,它是由Gradle Daemon 引起的

    Gradle 在 Java 虚拟机 (JVM) 上运行并使用多个 支持需要非平凡初始化时间的库。 因此,有时启动起来似乎有点慢。这 解决这个问题的方法是 Gradle Daemon:一个长寿的背景 比执行构建更快的过程 不然的话。

    虽然,保留内存的大小看起来令人担忧。

    看看How to disable the Daemon。它列出了几种禁用它的方法,但请记住,这会降低重复调用的性能。

    最简单的方法是使用--no-daemon 运行或将org.gradle.daemon=false 添加到您的gradle.properties 文件中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-04
      • 2012-12-23
      • 1970-01-01
      • 2012-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多