Xcode中的优化级别

Ani*_*esh 4 optimization xcode objective-c ios swift

我已经用谷歌搜索了这个问题,以清除一些基本概念,但是没有找到合适的答案。

Swift编译器和Apple LLVM(Objective-C)的Xcode构建设置中有多少优化级别可用于代码生成?

Muk*_*esh 5

Swift提供了四种不同的优化级别:

-Onone:

这是为了正常的发展。它执行最少的优化,并保留所有调试信息。

-O:

这适用于大多数生产代码。编译器执行了激进的优化,可以极大地改变发出代码的类型和数量。调试信息将被发出,但是会造成损失。

-Ounchecked:

这是一种特殊的优化模式,适用于愿意为性能而牺牲安全性的特定库或应用程序。编译器将删除所有溢出检查以及一些隐式类型检查。通常不打算使用此方法,因为它可能导致未检测到的内存安全问题和整数溢出。仅当您仔细检查了代码对于整数溢出和类型强制转换是安全的之后,才使用此功能。

-Osize:

这是一种特殊的优化模式,在该模式下,编译器将代码大小优先于性能。

您可以在此处准备更多有关这些的信息:OptimizationTips