Remarques sur les performances — copie à l’écriture
Comprenez les performances de String dans Swift : copie à l’écriture (COW), partage des sous-chaînes et gestion efficace de la mémoire.
Remarques sur les performances — copie à l’écriture est une leçon Swift Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 3. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Swift Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Swift Academy comprend 3 leçons au total.
Introduction
Objectif : apprendre comment les chaînes utilisent la copie lors de l'écriture (COW) pour équilibrer performances et sécurité. Les sous-chaînes partagent également la mémoire jusqu'à ce que cela soit nécessaire.
Stockage partagé
L'affectation d'une chaîne ne copie pas immédiatement les caractères. Les deux valeurs partagent le même stockage.
var a = "Hello World"
var b = a // no real copy yet
print(a, b)La mutation déclenche une copie
Une copie n'est effectuée que lorsque l'une des valeurs est modifiée. C'est la copie lors de l'écriture.
b.append("!!!") // triggers a real copy
print("a:", a)
print("b:", b)Sous-chaînes
Les sous-chaînes partagent la mémoire de la chaîne d'origine. La conversion en String crée une copie complète.
let text = "Hello Swift"
let part = text.prefix(5) // Substring
print(part)Sous-chaîne → String
Créez explicitement une String à partir d'une sous-chaîne si vous voulez qu'elle possède son propre stockage.
let s: String = String(part)
print("Converted:", s)Conseils
Conseils :
- Les affectations sont peu coûteuses jusqu'à la modification.
- Soyez prudent avec les sous-chaînes conservées longtemps : elles maintiennent la chaîne d'origine complète en mémoire.
- Convertissez en String si vous avez besoin d'un stockage indépendant.
Question sur COW
Vérification rapide : que fait la copie lors de l'écriture ?
Récapitulatif
Récapitulatif : les chaînes Swift utilisent la copie lors de l'écriture pour être efficaces. Les affectations et les sous-chaînes partagent la mémoire ; une véritable copie n'est effectuée qu'en cas de mutation ou de conversion explicite.
Questions Fréquemment Posées
La leçon « Remarques sur les performances — copie à l’écriture » est-elle gratuite ?
Oui — le texte complet de « Remarques sur les performances — copie à l’écriture » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Swift Academy, passe à CoddyKit PRO. Le cours Swift Academy comprend 3 leçons au total.
Qu'est-ce que j'apprendrai dans « Remarques sur les performances — copie à l’écriture » ?
Comprenez les performances de String dans Swift : copie à l’écriture (COW), partage des sous-chaînes et gestion efficace de la mémoire. Tu pratiques Swift Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Swift Academy ?
Aucune expérience préalable n'est requise. Swift Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 3.
Combien de temps prend la leçon « Remarques sur les performances — copie à l’écriture » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Swift Academy ?
Oui. Chaque leçon Swift Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Chaînes et Unicode — graphèmes, indices, sous-chaînes et API
- API courantes — prefix/suffix/contains, split/join
- Remarques sur les performances — copie à l’écriture