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