yadcc —— C++ 分布式编译系统
yadcc(Yet Another Distributed C++ Compiler)是一套腾讯广告自研的分布式编译系统,用于支撑腾讯广告的日常开发及流水线。相对于已有的同类解决方案,其针对实际的工业生产环境做了性能、可靠性、易用性等方面优化。 yadcc 目前在腾讯 1700+ 核的集群中每天编译 300,0000+ 个目标文件,产出约 3~5TB,已经持续稳定运营 8 个月。取决于代码逻辑及本地机器配置,yadcc 可以利用几百乃至 1000+ 核同时编译(腾讯内部使用 512 并发编译),大大加快构建速度。 具体简介及技术细节可以参考技术文档。 系统要求 Linux 3.10 及以上内核,暂不支持其他操作系统; x86-64 处理器; 编译yadcc需要GCC 8 及以上版本的编译器,基于yadcc进行分布式编译时可以支持其他更低版本编译器。 基本原理 和ccache、distcc、icecc等工具类似; 客户端伪装成编译器(通常是通过ln -sf yadcc g++创建的符号链接) 通过将客户端伪装的编译器加入PATH头部,这样构建系统就会实际执行yadcc来编译 yadcc会...
