即使没有代码更改(颤动),Gradle 也需要很长时间(40 秒)

Posted

技术标签:

【中文标题】即使没有代码更改(颤动),Gradle 也需要很长时间(40 秒)【英文标题】:Gradle takes long (40 seconds) even with no code change (flutter) 【发布时间】:2022-01-20 23:15:39 【问题描述】:

我使用 VS 代码并构建了一个示例应用程序。我有一个带有 32 GB RAM 和 SSD 的 6 核 AMD 处理器 (FX-6300)。我只是无法快速构建。

这是我当前的 gradle.properties 文件

org.gradle.jvmargs=-Xmx3096m -XX:+UseParallelGC -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
android.useAndroidX=true
android.enableJetifier=true
org.gradle.caching=true
org.gradle.daemon=true 
org.gradle.vfs.watch=true
org.gradle.configureondemand=true

即使没有更改构建(F5:开始调试),构建也需要 40 秒。

gradlew --version 显示

------------------------------------------------------------
Gradle 6.7
------------------------------------------------------------

Build time:   2020-10-14 16:13:12 UTC
Revision:     312ba9e0f4f8a02d01854d1ed743b79ed996dfd3      

Kotlin:       1.3.72
Groovy:       2.5.12
Ant:          Apache Ant(TM) version 1.10.8 compiled on May 10 2020
JVM:          15.0.2 (Oracle Corporation 15.0.2+7-27)
OS:           Windows 10 10.0 amd64

请帮忙。

【问题讨论】:

【参考方案1】:

我不知道你的代码是什么,也不知道为什么构建起来需要太多时间,因为你没有提到任何关于 .

的信息。

但如果您构建多个项目添加org.gradle.parallel=true 会有很大帮助。

假设你的构建需要org.gradle.jvmargs=-Xmx4096M ,那么下一次所有细节都会被缓存,这样运行时间就会更少,所以给org.gradle.jvmargs=-Xmx~提供更多可能也会有所帮助。

内存大小的增加将帮助您保存更大版本的缓存,从而提高性能。

【讨论】:

scans.gradle.com/s/3x3na2dqoaxcs 有扫描结果(花费 > 20 分钟甚至中止) 通过您建议的这些更改,(重新)构建减少了 10 秒(25%):``` org.gradle.jvmargs=-Xmx8000m -XX:+UseParallelGC -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 android.useAndroidX=true android.enableJetifier=true org.gradle.caching=true org.gradle.daemon=true org.gradle.vfs.watch=true org.gradle。 configureondemand=true org.gradle.parallel=true ``` 太好了,很高兴这有帮助。

以上是关于即使没有代码更改(颤动),Gradle 也需要很长时间(40 秒)的主要内容,如果未能解决你的问题,请参考以下文章

即使没有任何更改,Android 多模块 Gradle 构建也很慢

为啥即使源代码没有变化,Gradle 的“构建”任务也不是最新的?

构建失败并出现异常。颤动的Gradle问题

很长的 gradle 构建时间 - Android

Chewie颤动视频播放器

在更改了我颤动的 android 图标后,这发生了