Swift4.2の改善
- より速いコンパイル速度
- 新しい言語機能により効率が向上し、テンプレートコードが削除される
- Swift SDKの改善
- バイナリ互換性の向上
Swift5の改善
- バイナリ互換性が安定します。
- コンパイルされたバイナリは、他のコンパイラで作成されたコードと相互運用できます。
- SwiftランタイムをOSで格納ことができ、これまでAPPに含めるより、APPの起動スピードや操作効率を大幅に向上させ、APPのサイズを縮小できる
Buildの改善
- 最大3倍速くなった
- Swiftのみ
- Compilation ModeをOptimization Levelから切り離します。
- Compilation Modeの推奨設定
- Debug→Incrementalモードを有効にしてコンパイル速度を上げ
- Release→Wholeモジュール
- Optimization Level
- Optimize for Sizeを追加された
- バイナリファイルは10%から30%削減されますが、パフォーマンスは5%低下します
RunTimeの改善
ARC
Swift4.2以前
- 「Owned」モード
- 呼び出し元はRetainを担当し、呼び出し先はReleaseを担当します。
Swift4.2
- 「保証」モード
- 呼び出し元はオブジェクトのライフサイクルを管理し、呼び出し先はReleaseに対して責任を持ちません。
- 無駄なRetain、Releaseコードの削減、パフォーマンスの向上、バイナリファイルのサブセットのサイズの縮小が可能になります。
Small String
- 文字列のエンコーディングが24バイトから16バイトに変更され
- 文字列のサイズが十分小さい場合、スタックに直接保存し、ヒープメモリを割り当てる必要がなく、パフォーマンスが向上し、メモリ使用量が削減されます。
そのた機能改善
CaseIterable
EquatableとHashableの自動合成
Random
やっとarc4randomと別れた