Производительность — копирование при записи
Разберитесь с производительностью String в Swift: копированием при записи (COW), совместным использованием подстрок и эффективным управлением памятью.
«Производительность — копирование при записи» — бесплатный урок Swift Academy на CoddyKit. Это урок 3 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Swift Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Swift Academy содержит 3 уроков всего.
Введение
Цель: узнать, как строки используют копирование при записи (COW), сочетая производительность и безопасность. Подстроки также используют общую память, пока это необходимо.
Общее хранилище
Присваивание строки не приводит к немедленному копированию символов. Обе строки используют одно и то же хранилище.
var a = "Hello World"
var b = a // no real copy yet
print(a, b)Копирование при изменении
Копия создаётся только при изменении одного из значений. Это и есть копирование при записи.
b.append("!!!") // triggers a real copy
print("a:", a)
print("b:", b)Подстроки
Подстроки используют память исходной строки. Преобразование в строку создаёт полную копию.
let text = "Hello Swift"
let part = text.prefix(5) // Substring
print(part)Подстрока → строка
Явно создайте String из подстроки, если хотите, чтобы она владела собственным хранилищем.
let s: String = String(part)
print("Converted:", s)Советы
Советы:
- Присваивания почти не требуют затрат, пока данные не изменяются.
- Будьте осторожны с подстроками, хранящимися долго: они удерживают в памяти всю исходную строку.
- Преобразуйте данные в строку, если вам нужно независимое хранилище.
Вопрос о COW
Быстрая проверка: что делает копирование при записи?
Итоги
Итоги: строки Swift используют копирование при записи для эффективной работы. Присваивания и подстроки используют общую память; настоящая копия создаётся только при изменении или явном преобразовании.
Часто задаваемые вопросы
Урок «Производительность — копирование при записи» бесплатный?
Да — полный текст урока «Производительность — копирование при записи» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Swift Academy, подпишись на CoddyKit PRO. Курс Swift Academy содержит 3 уроков всего.
Чему я научусь в уроке «Производительность — копирование при записи»?
Разберитесь с производительностью String в Swift: копированием при записи (COW), совместным использованием подстрок и эффективным управлением памятью. Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Swift Academy?
Предыдущий опыт не требуется. Swift Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 3.
Сколько времени занимает урок «Производительность — копирование при записи»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Swift Academy?
Да. Каждый урок Swift Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Строки и Unicode — графемы, индексы, подстроки, API
- Распространённые API — prefix/suffix/contains, split/join
- Производительность — копирование при записи