抖音 Swift 编译优化 - 基于自定义 Toolchain 编译提速 60%
原文中文,约4400字,阅读约需11分钟。发表于: 。动手点关注干货不迷路本文重点探讨全部模块化后带来的依赖解析瓶颈,主要包括对头文件增量编译分析等内容。优化方案基于 Swift Toolchain 源码,本文不再探讨 Toolchain 相关基本概念及配置流程等,仅聚焦方案本身。背景随着混编落地的业务场景越来越多,越来越大,开发中出现的性能痛点开始显现,问题很明显集中在被 Swift 环境所依赖的 OC 仓的头文件改动上。因此基建架构把重点放在接口...
本文介绍了抖音基础技术团队通过自定义 Toolchain 能力,裁剪 Clang Header 指定内容,实现编译提速 60%的方案。该方案通过修改编译器,对 Swift 编译生成的 Clang Header Interface 进行裁剪,删除掉系统库以外的 @import,而 OC 侧引用该头文件的地方手动补全依赖。该方案已于 2022 年 11 月底上线,在抖音稳定运行近 5 个月。