提问人:Augusto Carmo 提问时间:8/10/2022 更新时间:8/10/2022 访问量:51
一些 ./gradlew 命令保留内存(通过 java 进程)
Some ./gradlew commands are holding memory (through java processes)
问:
我察觉到,当我运行一个任务时,在任务完成后,系统仍然保留使用的内存。./gradlew
例:
运行任务后:
并创建一个新的 Java 进程,消耗 gbs 的内存./gradlew testBuildVariant1UnitTest
运行第二个任务后:
创建一个消耗 gbs 内存的新 Java 进程./gradlew testBuildVariant2UnitTest
在我手动终止进程或运行以下命令之前,内存不会释放:java
./gradlew --stop
这是预期的行为吗?在运行 ./gradlew
任务后,我可以做些什么来自动释放内存?
答:
1赞
user16358266
8/10/2022
#1
是的,这是意料之中的,它是由 Gradle 守护程序引起的
Gradle 在 Java 虚拟机 (JVM) 上运行,并使用了 支持需要大量初始化时间的库。 因此,有时启动起来似乎有点慢。这 这个问题的解决方案是 Gradle Daemon:一个长期的背景 执行生成的速度比以更快的速度执行生成的进程 否则就是这种情况。
虽然,保留内存的大小看起来令人担忧。
查看如何禁用守护程序。它列出了几种禁用它的方法,但请记住,这将降低重复调用的性能。
最简单的方法是运行或添加到您的文件中。--no-daemon
org.gradle.daemon=false
gradle.properties
评论