Performance notes — copy-on-write
Understand Swift String performance: copy-on-write (COW), substring sharing, and how to manage memory efficiently.
Performance notes — copy-on-write is a free Swift Academy lesson on CoddyKit — lesson 3 of 3. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Swift Academy learning path, one of 3 lessons in the course, and your progress syncs across the web and the CoddyKit app.
Intro
Goal: Learn how Strings use copy-on-write (COW) to balance performance and safety. Substrings also share memory until needed.
Shared storage
Assigning a String does not immediately copy characters. Both share the same storage.
var a = "Hello World"
var b = a // no real copy yet
print(a, b)Mutation triggers copy
A copy occurs only when one of the values mutates. This is copy-on-write.
b.append("!!!") // triggers a real copy
print("a:", a)
print("b:", b)Substrings
Substrings share the original string's memory. Converting to String makes a full copy.
let text = "Hello Swift"
let part = text.prefix(5) // Substring
print(part)Substring → String
Explicitly create a String from a Substring if you want it to own storage.
let s: String = String(part)
print("Converted:", s)Tips
Tips:
- Assignments are cheap until modified.
- Be cautious with long-lived Substrings—they keep the full original string in memory.
- Convert to String if you need independent storage.
COW question
Quick check: What does copy-on-write do?
Recap
Recap: Swift Strings use copy-on-write to be efficient. Assignments and substrings share memory; a real copy happens only on mutation or explicit conversion.
Frequently asked questions
Is the “Performance notes — copy-on-write” lesson free?
Yes — the full text of “Performance notes — copy-on-write” is free to read here on the web, and the Swift Academy course includes 3 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Swift Academy course, upgrade to CoddyKit PRO.
What will I learn in “Performance notes — copy-on-write”?
Understand Swift String performance: copy-on-write (COW), substring sharing, and how to manage memory efficiently. You practise Swift Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start Swift Academy?
No prior experience is required. Swift Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 3 of 3, so you can start here or from the beginning and move at your own pace.
How long does the “Performance notes — copy-on-write” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this Swift Academy lesson?
Yes. Every Swift Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- Strings & Unicode — graphemes, indices, substrings, APIs
- Common APIs — prefix/suffix/contains, split/join
- Performance notes — copy-on-write