为什么在 Linux 下构建 APK 比用 Windows 快非常多

4 天前
HojiOShi  HojiOShi

我用两台机器,一台 5600X 一台 7950X 。 5600X 那台装的是 Ubuntu 24.04 ,7950X 那台装的是 Windows 10 。 两个系统都已经更新到最新补丁,已经尽可能清空后台程序,且内存存储非常富裕。

对公司项目使用命令行工具构建出 release 版本的 APK 并且计时。 结果测速发现 7950X 构建花了 7 分 8 秒,5600X 花了 5 分 12 秒。是的你没看错,测了三次都差不多这结果。 更离谱的是 5600X 我甚至还把项目文件放在机械硬盘上的,没想到还是被碾压了。

公司项目也没啥特别的:AGP 8.9 代码规模也就 6w 行左右 过八成 java+不足两成 kotlin ,没有 native 代码,就这个样子。 构建任务:构建一个大的 app 模块的 3 个 variant (全 java )和两个小的 app 模块(全 kotlin ),总共 5 个 APK 文件。这三个模块除了共享了定义数据协议结构的库以外基本独立。测试之前已经预先构建过,用于把依赖下载完整,所以不存在网络波动导致的时间差异。

原本以为 7950X 的构建速度上理应碾压 5600X 的,就算系统不同,也不应该有这么大的差距。 实在想不出为什么会有这样的结果。 在 Windows 上我还特意用了Microsoft Build of OpenJDK 21的。

4980 次点击
所在节点   Android  Android
28 条回复
moefishtang
moefishtang
3 天前
好奇 Windows Server 上构建速度与 Windows 有什么差异
调整高级系统设置里的处理器偏好会不会有作用?
xausky
xausky
3 天前
@debuggeeker 果粉要跟你说:什么,黑苹果也能代表苹果?
lisxour
lisxour
3 天前
楼上怎么全是怪系统的,有没有考虑过工具链不一样?
huangzhiyia
huangzhiyia
3 天前
关闭杀毒软件,关闭索引。效果显著,不过( •̀ ω •́ )y ,顶配 MacBook air 下一个月就到了,彻底和 Windows 说拜拜。
HangoX
HangoX
2 天前
不用测试了,window 上是比 linux 上慢的,window 上主要问题是没法给你编译进程非常高的 CPU 使用率,都是不到 90% 跳动的,linux 下可以。我的测试环境是,window 上装 vbox 虚拟 linux ,也是编译比 window 上快。
debuggeeker
debuggeeker
1 天前
@HangoX 为什么不能给高 CPU 使用率呢,这个问题我最近发现编译的时候,CPU 使用率真的很低,i912900k 关小核,8c16t 情况下,编译到部分阶段开始摆了,使用率不到 30%,全程状态只有不到 40%时间可以高使用率的。
debuggeeker
debuggeeker
1 天前
@lisxour 工具链什么意思,安卓这边的编译用的是 jdk ,gradle ,同一个项目配置一样的,没有版本差异。同版本 Linux 上的 jdk gradle 更好吗
HangoX
HangoX
1 天前
@debuggeeker 你这个属于另外的情况,是编译到一个模块的时候,只能并发那么多导致的,是你项目设置的问题。
我说的是需要机器给 16 线程出力的时候,window 总是给到的只有 14 的力量,就是占用率在会掉到 80%多。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1119171

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX