LoginSignup
19
9

More than 5 years have passed since last update.

Swift 4.2の変更点メモ

Last updated at Posted at 2018-09-03

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

19
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
9