Ownership(所有権)は今年後半に登場予定のSwift5で追加される機能です。ABI安定化に向けても重要な機能ですが、Ownershipを使いこなすことでメモリコピーを減らすことができ、プログラムのパフォーマンスを向上させることができると期待されます。本セッションでは、昨年公開されたマニフェスト(OwnershipManifesto)に記載された内容を元に、Ownershipの概要をご紹介します。
Swift5のOwnershipに備える
名刺管理アプリを開発しています
Ownershipを調べた気づきを3つ紹介します。
OwnershipはSwiftに実装予定です。
Ownershipはより高度なメモリ管理ができます
自動でメモリ管理している分、コントロールが効かない部分がある。
音声の扱いなどでパフォーマンスチューニングがしやすくなる
shared のイメージです。
引数に shared キーワードが付いていることがわかります。
従来ならCGPointなのでコピーされますが
sharedはコピーする上に、read onlyになります。
コピーできない型のコピーを禁止する。
Atomic Booleanのような事もできる。
学習コストはある。
Rustでも議論されている
Swiftでは一部がオプトイン機能である。
使うほどでもなければ使わずにコードを書くことができる。
Rustは標準言語仕様として組み込まれている。
このあたりはOwnership ManufestでRustと比較して述べられており、意識しなくても使えるようにすることを気遣っているようだった
Ownershipを楽しみに待ちましょう