Swift 3 语言中的全模块优化
全模块优化是一种 Swift 编译器的优化模式。全模块优化的性能提升很大程度上因项目而异,可达到 2 倍甚至 5 倍的提升。
开启全模块优化可以使用 -whole-module-optimization (或者 -wmo)编译器标识,并且在 Xcode 8 中默认在新项目中被打开。另外 Swift 的包管理器在发布构建中使用全模块优化编译。
那么它是关于什么的?让我们先看看没有全模块优化编译器是如何工作的。
什么是模块和如何编译模块
一个模块是 Swift 文件的集合。每个模块编译成一个独立分布单元-框架(framework)或可执行程序。在单文件编译(没有 -wmo)中,Swift 编译器分别编译模块中的每一个文件。事实上,这就是背后发生的事情。作为一个使用者你不需要手动做这些。编译器驱动或