【问题标题】:Optimization levels in XcodeXcode 中的优化级别
【发布时间】:2019-07-23 04:13:52
【问题描述】:

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

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

【问题讨论】:

    标签: ios objective-c swift xcode optimization


    【解决方案1】:

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

    -Onone:

    这是为了正常开发。它执行最小 优化并保留所有调试信息。

    -O:

    这适用于大多数生产代码。编译器执行 激进的优化可以彻底改变类型和 发出的代码量。调试信息将被发出,但将 有损。

    -Ounchecked:

    这是一种特殊的优化模式,适用于特定的库或 愿意以安全换取性能的应用。这 编译器将删除所有溢出检查以及一些隐式类型 检查。这不打算在一般情况下使用,因为它可能会导致 在未检测到的内存安全问题和整数溢出中。只使用 如果您已经仔细检查过您的代码是安全的 关于整数溢出和类型转换。

    -Osize:

    这是一种特殊的优化模式,编译器优先考虑 代码大小超过性能。

    你可以在这里准备更多关于这些的信息:OptimizationTips

    【讨论】:

    • 您能解释一下所有缩写词的含义吗? “Onone”特别神秘。
    • @PeterSchorn -O 是优化的前缀,所以它们是noneOptimizeduncheckedsize
    • 是否将标志设置为 NONE,是否会影响应用在 Appstore 中的整体性能?
    猜你喜欢
    • 1970-01-01
    • 2013-03-10
    • 2016-08-09
    • 2018-10-06
    • 2020-11-22
    • 2014-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多