0Pricing
Swift Academy · レッスン

パフォーマンスのポイント — コピーオンライト

Swift Stringのパフォーマンスを理解します。コピーオンライト(COW)、部分文字列の共有、メモリを効率的に管理する方法を扱います。

「パフォーマンスのポイント — コピーオンライト」はCoddyKit上の無料Swift Academyレッスンです。 これはレッスン3/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwift Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Swift Academyコースには全3レッスンが含まれています。

はじめに

目標: Stringがcopy-on-write(COW)を使って、パフォーマンスと安全性を両立する仕組みを学びます。Substringsも必要になるまでメモリを共有します。

共有ストレージ

Stringを代入しても、文字がすぐにコピーされるわけではありません。両方が同じストレージを共有します。

var a = "Hello World"
var b = a            // no real copy yet
print(a, b)

変更時にコピーが発生する

コピーは、値のいずれかが変更されたときにだけ発生します。これがcopy-on-writeです。

b.append("!!!")   // triggers a real copy
print("a:", a)
print("b:", b)

Substrings

Substringsは元の文字列のメモリを共有します。Stringに変換すると完全なコピーが作成されます。

let text = "Hello Swift"
let part = text.prefix(5)   // Substring
print(part)

Substring → String

独自のストレージを持たせたい場合は、Substringから明示的にStringを作成します。

let s: String = String(part)
print("Converted:", s)

ヒント

ヒント:

  • 代入は、変更されるまでは低コストです。
  • 存続期間の長いSubstringには注意してください。元の文字列全体がメモリに保持されます。
  • 独立したストレージが必要な場合はStringに変換します。

COWに関する質問

確認: copy-on-writeは何をしますか?

まとめ

まとめ: SwiftのStringは効率的に動作するためにcopy-on-writeを使用します。代入とSubstringはメモリを共有し、変更するか明示的に変換した場合にだけ実際のコピーが作成されます。

よくある質問

「パフォーマンスのポイント — コピーオンライト」レッスンは無料ですか?

はい。「パフォーマンスのポイント — コピーオンライト」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Swift Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Swift Academyコースには全3レッスンが含まれています。

「パフォーマンスのポイント — コピーオンライト」で何を学びますか?

Swift Stringのパフォーマンスを理解します。コピーオンライト(COW)、部分文字列の共有、メモリを効率的に管理する方法を扱います。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Swift Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのSwift Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/3です。

「パフォーマンスのポイント — コピーオンライト」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このSwift Academyレッスンでコードを書いて実行できますか?

はい。すべてのSwift Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 文字列とUnicode — 書記素、インデックス、部分文字列、API
  2. 一般的なAPI — prefix/suffix/contains、split/join
  3. パフォーマンスのポイント — コピーオンライト
← Swift Academyに戻る