我们公司的 App 项目差不多有 10 年了,功能越多越多。32G 的 Windows 系统有时候改一点东西编译需要十几二十分钟,CPU 、内存经常 90% ~ 100%。也改 JVM 编译内存,并行编译。都不是很理想!
另外,我发现同时开启 vs Code ,OpenJDK Platform binary 好像暴增
org.gradle.jvmargs=-Xmx6g -XX:MetaspaceSize=1g -XX:MaxMetaspaceSize=2g -XX:+UseParallelGC -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
kotlin.daemon.jvmargs=-Xmx6g -XX:MaxMetaspaceSize=1g -XX:+UseParallelGC
org.gradle.parallel=true
1
v2zhao 1 天前
这个很复杂 从依赖解析到编译, 跑下性能看看那个有瓶颈
|
2
bootvue 1 天前
重构
|
3
lw0x1 1 天前 项目有分模块化么,gradle 版本有升级吗?不应这么慢啊,我现在也是维护一个老项目,全是屎山代码,Java+kotlin 混编的,电脑配置是 13600K+32G 内存,改动代码后编译项目最慢的情况下也只要 1-2 分钟(run 的时候),快的话四五十秒
|
4
devloperchen OP @bootvue 不可能!没有时间给你重构!
|
5
devloperchen OP @lw0x1 分了,不过不严谨,大部分功能还是在 main 模块。gradle 永远是最新的。郁闷啊!严重拖慢编译速度
|
6
WuwuGin 1 天前
Windows 的 io 很烂,换成 sublinux 都能提速很多,亲测
|
7
lw0x1 1 天前
@devloperchen 不太理解,会不会是你项目的三方库太多了,github 上面的那种库,你这编译十几二十分钟也太离谱了
|
8
linhua 1 天前
Android Studio 下面的编译窗口,有占用时间分析,看看是哪块占了时间
|
9
simpleman 1 天前
不是开发者的问题,Android Studio ,gradle 就是这么垃圾。
|
10
devloperchen OP @WuwuGin 把项目放到 WSL 里?然后在 Windows 中编译开发?
|
11
devloperchen OP @lw0x1 库确实很多,但是也没有升级库,没有改动库,改 gradle 脚本编译慢我理解。不过,刚才问了一下 cluade Opus 4.5 它认为有些核心文件如果被修改了,就会编译慢
|
12
h1298841903 1 天前
右上角的 gradle 图标,里面再点击离线图标,可以避免网络请求,这是我的一点经验。
|
13
wobuhuicode 1 天前 用 M 版的 macbook 打包会快很多。
|
14
Vindroid 1 天前
凑合用吧,老项目乱改、升版本一堆错误要修
|
15
youhu666 1 天前
我们这个 IPABUILD 的打包三分钟
|
16
youhu666 1 天前
|
17
crayygy 1 天前
有 C/C++ 代码吗?有的话,正常,特别是当你改了某些比较底层的头文件的时候,链接很耗时间。
通常来说可以打开 build tab ,看一下编译的耗时情况,哪些 task 占用的比较多 |
18
kuanat 1 天前
先考虑提升硬件看看。
以全量编译 aosp 为例,在公司老的 e5 服务器上,大概要四个半小时左右。放到同事今年新买的笔记本上,70w 性能模式大概只要两个小时不到,从 32g 升级到 64g 内存之后,又能提升接近 15 分钟。后面增量编译大概在 10~20 分钟不等。 |
19
liu731 PRO 是不是有魔改 build ,之前接手过全图片混淆的项目。
|
20
tanranran 1 天前
最简单的办法,先升级内存,然后在升级 CPU
|
21
CodingIran 1 天前
再慢能有 Xcode 编译慢 🐶
|
22
MegatronKing 1 天前
全量编译慢很正常,尽量把一些模块预编译,以 library 形式接入进来。
|
23
anan1314git 1 天前
@CodingIran 还真比 Xcode 慢很多, 我们公司同一个电商 APP, 功能一致, iOS 的编译差不多也就三四分钟, Android 的十分钟起步, 也不知道是投了什么毒😂
|
24
rb6221 1 天前
10 年老项目,是时候重构一波了
|
25
Gekou 1 天前
电脑垃圾吧,光内存大没用,cpu 呢
|
26
HarryQu 1 天前
1. 项目当中有很多的字节码插件吗?有些插件实现的有问题,会导致增量编译失效或者编译速度变慢。
2. 模块化拆分 aar 后依赖,module 多的话也会影响编译。 3. 换更高配置的电脑,Android Stuido 是吃内存和 CPU 的大户。 |
27
WuwuGin 1 天前
@devloperchen 对,我这边的案例是放 WSL 里,用 wsl 的命令行编译,比在 ide 中快很多。只不过相比之下很折腾就是了。最终换 MBP 一了百了😅
|
28
HongJay 1 天前
就换 cpu 就行了,别想着优化
|
29
leegradyllljjjj 1 天前 via iPhone
很明显吸屁优不行,我同事的 macbook 运行 npm build 快的一匹
|
30
shilyx 1 天前
android studio 本身就是一坨屎山,没见过这么烂的 IDE
或者说 IDE 本身问题不大,而是它的工程组织太烂了,就没考虑过版本兼容性。我只想编译一个老工程而已,谁愿意把时间浪费到 IDE 的体毛级配置上去? |
31
admin948 1 天前
检查下是不是网络问题?我遇到的大多数说编译慢,卡住的都是网络导致的。
Gradle 的依赖机制有点难评,就算依赖没有修改,没有更新,它也会去请求依赖的信息…… |
32
HojiOShi 1 天前
确实,要解决其实就两种方法:
1. 不换硬件,把系统换成 Linux 。不建议用 WSL ,打命令还是挺麻烦的。https://www.v2ex.com/t/1119171 2. 换成 Arm 版 Mac 。 |
33
cang00jia 1 天前
换 m4 mac mini 试试,单核牛逼会快很多。
|
34
sir283 1 天前
盲猜是 gradle 在 build 的时候,下载依赖了,然后 op 公司的网络又不好,没有搭梯,所以导致卡在 build 那里这么久,建议 op 跟公司说一下这个问题,可以解决大部分编译缓慢的问题,还有就是更换新的固态硬盘、添加内存条、更换 CPU 等。
|
35
thealert 1 天前
构建时长为什么和 ide 有关系,不是 gradle 构建的么
|
36
devloperchen OP @sir283 不是,我都是开代理了。就是改了核心功能,依赖太多文件,导致 compileGpAlphaDebugJavaWithJavac 编译耗时
|
37
yanxu4780 1 天前
换华为,华为 IDE 速度全世界最快
|
38
unco020511 1 天前
很正常,我们源码 10 多个 G 的 app 项目,全量边译一次至少半个小时,本地 run 一下也要差不多十几分钟
|
39
devloperchen OP @unco020511 我们公司的项目安装包 240M ,核心类引用了 22000+ 次,改动这个类一个字符重新编译至少 10 分钟
|
40
EriczzZ 20 小时 0 分钟前
最近在写鸿蒙代码,一对比 Android 编译是真的慢
|
41
yongdaimi 17 小时 51 分钟前
不要全部使用 kotlin, 自从用上 kotlin + ViewBinding 之后,编译速度确实慢了好多,而另一个老的纯 java 的项目,速度快的飞起,感觉还是 kotlin 编译这块 JB 没优化好,我的一点小经验。
|