使用 sccache 提高 chromium 本地编译速度


发布于 2021-09-03


如果不能使用 goma,编译 chromium 的时间是非常漫长的。chromium 93 开始支持 sccache,来提高本地编译的速度了。

sccache 是类似 ccache 的编译缓存工具,它会缓存编译的中间结果到磁盘中。下次重新编译代码的时候,编译器会直接利用上缓存的数据,从而加快编译速度。我本地实测编译 chromium,sccache 能提高2~3倍的编译速度。ccache 原先只支持类 unix 系统,因此 sccache 的出现对在 windows 上开发 chromium 意义特别大。

实际上 sccache 是 firefox 浏览器团队开发的,感谢他们。

使用 sccache

使用 sccache 非常简单,直接去 sccache github 项目里下载编译好的可执行文件。然后把下载好的 sccache 可执行文件放到一个目录里,把这个目录加到 PATH 环境变量中。

编译chromium前,传递额外的两个 gn 参数 cc_wrapper = "sccache" chrome_pgo_phase = 0,就可以了。

第一次使用 sccache 编译 chromium 仍然很慢,因为它没有任何缓存可以利用。后续再编译,就可以利用缓存加快编译速度了。下面截图是我本地缓存的结果:

sccache show stats

默认的,sccache 缓存最大10GB,缓存在%localappdata%\Mozilla\sccache目录。我们可以通过环境变量SCCACHE_CACHE_SIZE、SCCACHE_DIR来改变这些设置,比如:

SCCACHE_CACHE_SIZE="20G"
SCCACHE_DIR="D:\sccache"

参考