chromium开发社区已经正式不支持和禁用jumbo build


发布于 2019-11-06


今天看chromium-dev社区,发现 The jumbo build is now officially unsupported and disabled

随着Chromium工程的不断增长,编译Chromium所使用的时间越来越来长了。使用use_jumbo_build,可以大减少代码的编译时间,大概能减少50%以上。Chromium不再支持use_jumbo_build,那么我本机完全编译一次Chromium代码可能需要3个小时左右。从下面这张图片里可以明显感受到jumbo build的巨大提升。

simplified jumbo compile time development 2018-03-12

Google开发人员今年8月16号在chromium-dev社区发帖说 We're removing support for the jumbo build ,理由是jumbo build导致的代码冲突对目前编写C++产生了干扰,让人以不自然,笨拙的方式去避免问题。维护成本越来越大而决定放弃jumbo build。Google会持续探索其他方式来减少编译时间,并且已经开源了GOMA分布式编译系统。

这个帖子在chromium-dev社区激起了强烈的讨论,很多非Google公司的开发者认为,不是所有人都像Google的开发者那样有着极高配置的开发电脑和分布式编译系统,可以缩减编译时间到十几分钟。如果一次Chromium代码编译需要耗费几个小时,必然会阻碍一部分人参与Chromium项目。

jumbo build能够大大提高代码编译的原理是把许多个cc/cpp文件合并在一起编译而不是一个个去编译。编译加速依赖很多因素,但是通常平均能够减少70-95%的编译时间,这真的是很惊人的编译时间优化。jumbo的缺点是因为很多cc/cpp文件合并在一起,所以必须小心代码命名冲突。参见Using unity builds (jumbo) for Chromium