用語の種類
最適化
大分類
技術用語技法・アルゴリズム
連想する用語
最終更新日
2024/01/10 12:05
参考文献
DOWNLOAD
ゆめみ iOS 研修との関連
学習の難易度
学習の重要度
コピーオンライトは、処理速度を最適化する仕組みのひとつで、値のコピーを要求されても、表向きには値をコピーしたように見せてひとつのデータを参照しておき、コピー先やコピー元の値のどちらかが変更されるときになって初めて、実際に値のコピーを行う仕組みです。
これにより、値が大きなデータだったりしたときにでも、値を参照する限りは実際のデータをコピーする処理が必要なくなり、処理効率を向上できます。
Swift では、値型 Array
や Dictionary
などの構造体で採用されていて、これらの値を変数や引数に幾度と渡したとしても、書き換えない限りは内容のコピーが行われないため、効率よく値を受け渡すことが可能になります。
自作の型を Copy-On-Write に対応させるためのヒント
Swift では、標準ライブラリーに isKnownUniquelyReferenced
という関数が用意されていて、これを用いて自作の値型に Copy-On-Write の機能を実装しやすくなっています。