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

在编译Swift应用程序时,stackoverflow上的几个线程(例如这个)讨论了不同的优化级别( 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构建一个涉及对数组进行排序的简单示例,则运行速度要快几个数量级。

链接地址: http://www.djcxy.com/p/31677.html

上一篇: Swift on Linux: how to specify compiler optimizations

下一篇: Swift's Dictionary is slow even with