Swiftコンパイラの最適化レベル
今回はSwiftコンパイラのOptimization Level (最適化レベル)
について調べる機会があったので、それらを簡単にまとめてみます🧑🔧
結論
結論、Swiftコンパイラには下記のような最適化レベルがあります。
Level | 内容 |
---|---|
-Onone | 開発時のデフォルトレベルで、最小限の最適化を実行し、デバック情報を保持します。 |
-O | リリース時のデフォルトレベルで、コンパイラーは積極的に最適化を実行し、デバック情報は圧縮されて出力されます。 |
-Ounchecked | 安全性を損なってでもパフォーマンスを向上させたいライブラリやアプリケーションの場合に使用するレベルです。危険な最適化レベルなので、基本的に使用することはありません。 |
-Osize | パフォーマンスよりもコードのサイズに対する最適化を優先して行います。 |
ちなみにこれらは、Xcode の Build Settings
から変更可能です。Swift Compiler - Code Generation > Optimization Level
てな感じで本日も以上になります🍺
参考
- https://github.com/apple/swift/blob/main/docs/OptimizationTips.rst#enabling-optimizations
- https://stackoverflow.com/questions/57156601/optimization-levels-in-xcode