Swift on Linux:如何指定编译器优化

时间:2016-01-02 18:20:02

标签: linux swift macos compilation

stackoverflow上的几个线程(例如this one)在编译Swift应用程序时讨论了不同的优化级别(OnoneOOunchecked ...)。

但是,这些帖子与OSX上的开发有关。似乎可以通过Xcode或xcrun(xcrun swift -O3)直接设置这些优化。

我想知道在Linux上直接使用Swift编译器时如何切换不同的优化级别(Ubuntu 15.10)。目前,我正在通过调用文档中显示的swift build来构建应用程序,但我发现没有办法不改变优化级别。

1 个答案:

答案 0 :(得分:3)

可以向Swift编译器-O提供-Onone-Ouncheckedswiftc优化标志。但是,似乎目前无法为swift build指定其他标志。例如,请参阅以下链接,即使它没有直接关联: https://bugs.swift.org/browse/SR-397。同样的错误报告表明该团队正积极致力于添加这项缺失的功能。

我发现解决此问题的一种方法是运行swift build -v,找到引用-Onone的第一个命令,将其复制到shell脚本后面的所有命令,编辑脚本使用所需的优化级别而不是-Onone,并运行脚本。这应该使用所需的优化级别重新编译Swift源并重建可执行文件。

在我的测试中,我发现如果使用-O-Ounchecked而不是-Onone构建,那么涉及对数组进行排序的简单示例运行速度要快几个数量级。