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



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

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

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

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

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

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

最新更新