stackoverflow上的几个线程(例如this one)在编译Swift应用程序时讨论了不同的优化级别(Onone
,O
,Ounchecked
...)。
但是,这些帖子与OSX上的开发有关。似乎可以通过Xcode或xcrun(xcrun swift -O3
)直接设置这些优化。
我想知道在Linux上直接使用Swift编译器时如何切换不同的优化级别(Ubuntu 15.10)。目前,我正在通过调用文档中显示的swift build
来构建应用程序,但我发现没有办法不改变优化级别。
答案 0 :(得分:3)
可以向Swift编译器-O
提供-Onone
,-Ounchecked
和swiftc
优化标志。但是,似乎目前无法为swift build
指定其他标志。例如,请参阅以下链接,即使它没有直接关联:
https://bugs.swift.org/browse/SR-397。同样的错误报告表明该团队正积极致力于添加这项缺失的功能。
我发现解决此问题的一种方法是运行swift build -v
,找到引用-Onone
的第一个命令,将其复制到shell脚本后面的所有命令,编辑脚本使用所需的优化级别而不是-Onone
,并运行脚本。这应该使用所需的优化级别重新编译Swift源并重建可执行文件。
在我的测试中,我发现如果使用-O
或-Ounchecked
而不是-Onone
构建,那么涉及对数组进行排序的简单示例运行速度要快几个数量级。