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

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的。