Swift5のOwnershipに備える | try! Swift Tokyo 2018 Day2-9

Ownership(所有権)は今年後半に登場予定のSwift5で追加される機能です。ABI安定化に向けても重要な機能ですが、Ownershipを使いこなすことでメモリコピーを減らすことができ、プログラムのパフォーマンスを向上させることができると期待されます。本セッションでは、昨年公開されたマニフェスト(OwnershipManifesto)に記載された内容を元に、Ownershipの概要をご紹介します。

Swift5のOwnershipに備える

f:id:niwatako:20180302145900j:plain

名刺管理アプリを開発しています

f:id:niwatako:20180302145905j:plain

Ownershipを調べた気づきを3つ紹介します。

f:id:niwatako:20180302145922j:plain

OwnershipはSwiftに実装予定です。

Ownershipはより高度なメモリ管理ができます

f:id:niwatako:20180302145952j:plain

自動でメモリ管理している分、コントロールが効かない部分がある。

音声の扱いなどでパフォーマンスチューニングがしやすくなる

f:id:niwatako:20180302150036j:plain

shared のイメージです。

引数に shared キーワードが付いていることがわかります。

従来ならCGPointなのでコピーされますが

f:id:niwatako:20180302150109j:plain

sharedはコピーする上に、read onlyになります。

コピーできない型のコピーを禁止する。

f:id:niwatako:20180302150135j:plain

Atomic Booleanのような事もできる。

学習コストはある。

f:id:niwatako:20180302150159j:plain

Rustでも議論されている

f:id:niwatako:20180302150218j:plain

Swiftでは一部がオプトイン機能である。

使うほどでもなければ使わずにコードを書くことができる。

Rustは標準言語仕様として組み込まれている。

このあたりはOwnership ManufestでRustと比較して述べられており、意識しなくても使えるようにすることを気遣っているようだった

f:id:niwatako:20180302150314j:plain

f:id:niwatako:20180302150320j:plain

f:id:niwatako:20180302150327j:plain

Ownershipを楽しみに待ちましょう

[広告]面白かったら、ためになったら

  • はてなブックマークSwift タグをつけてブックマーク!
  • 「インターネットで生活を楽しく豊かにしたい」仲間を募集しています
  • Bitcoin: 3KGqXtR1ZaGVdkvcw8CCNrkDxDhdbZBYHL