post Image
Swift 4.2の変更点メモ

Swift4.2の改善

image.png

  • より速いコンパイル速度
  • 新しい言語機能により効率が向上し、テンプレートコードが削除される
  • Swift SDKの改善
  • バイナリ互換性の向上

Swift5の改善

image.png

  • バイナリ互換性が安定します。
    • コンパイルされたバイナリは、他のコンパイラで作成されたコードと相互運用できます。
    • SwiftランタイムをOSで格納ことができ、これまでAPPに含めるより、APPの起動スピードや操作効率を大幅に向上させ、APPのサイズを縮小できる

Buildの改善

image.png

  • 最大3倍速くなった
    • Swiftのみ

image.png

  • Compilation ModeをOptimization Levelから切り離します。
  • Compilation Modeの推奨設定
    • Debug→Incrementalモードを有効にしてコンパイル速度を上げ
    • Release→Wholeモジュール

image.png

  • Optimization Level
    • Optimize for Sizeを追加された
    • バイナリファイルは10%から30%削減されますが、パフォーマンスは5%低下します

RunTimeの改善

ARC

Swift4.2以前

image.png

  • 「Owned」モード
  • 呼び出し元はRetainを担当し、呼び出し先はReleaseを担当します。

Swift4.2

image.png

  • 「保証」モード
  • 呼び出し元はオブジェクトのライフサイクルを管理し、呼び出し先はReleaseに対して責任を持ちません。
  • 無駄なRetain、Releaseコードの削減、パフォーマンスの向上、バイナリファイルのサブセットのサイズの縮小が可能になります。

Small String

  • 文字列のエンコーディングが24バイトから16バイトに変更され
  • 文字列のサイズが十分小さい場合、スタックに直接保存し、ヒープメモリを割り当てる必要がなく、パフォーマンスが向上し、メモリ使用量が削減されます。

そのた機能改善

CaseIterable

image.png

EquatableとHashableの自動合成

image.png

Random

やっとarc4randomと別れた

image.png

環境変数の変化

image.png

image.png


『 Swift 』Article List