【发布时间】:2019-07-23 04:13:52
【问题描述】:
我已经用谷歌搜索了这个问题以澄清一些基本概念,但没有找到合适的答案。
在 Swift 编译器和 Apple LLVM (Objective-C) 的 Xcode 构建设置中,有多少优化级别可用于代码生成?
【问题讨论】:
标签: ios objective-c swift xcode optimization
我已经用谷歌搜索了这个问题以澄清一些基本概念,但没有找到合适的答案。
在 Swift 编译器和 Apple LLVM (Objective-C) 的 Xcode 构建设置中,有多少优化级别可用于代码生成?
【问题讨论】:
标签: ios objective-c swift xcode optimization
Swift 提供了四种不同的优化级别:
-Onone:
这是为了正常开发。它执行最小 优化并保留所有调试信息。
-O:
这适用于大多数生产代码。编译器执行 激进的优化可以彻底改变类型和 发出的代码量。调试信息将被发出,但将 有损。
-Ounchecked:
这是一种特殊的优化模式,适用于特定的库或 愿意以安全换取性能的应用。这 编译器将删除所有溢出检查以及一些隐式类型 检查。这不打算在一般情况下使用,因为它可能会导致 在未检测到的内存安全问题和整数溢出中。只使用 如果您已经仔细检查过您的代码是安全的 关于整数溢出和类型转换。
-Osize:
这是一种特殊的优化模式,编译器优先考虑 代码大小超过性能。
你可以在这里准备更多关于这些的信息:OptimizationTips
【讨论】:
none、Optimized、unchecked 和size。