Patrice Lamarche
Les concaténations de chaines en C#
Nous allons voir au travers de cet article les différents types de concaténations de chaines en C#, comment elles sont optimisées par le compilateur afin de vous aider à choisir la meilleure solution en fonction de votre contexte.
Par Patrice Lamarche publié le 02/03/2010 à 14:24, lu 4122 fois, 6 pages
 5 | String.Format
Nous allons à présent voir si l’utilisation de la méthode Format du type String peut être performante dans le cadre de la concaténation de chaines.
Pour cela, regardons de plus prêt comment est implémentée la méthode Format :
 
/content/fa47f855-3c94-4166-a3f7-3c026ea32a32/image13.png
 
Comme nous pouvons le voir, la méthode utilise en interne un StringBuilder. La méthode Format souffre donc du problème évoqué précédemment pour un petit nombre de concaténations (ce qui est généralement le cas lors de l’utilisation de String.Format).
De plus, la méthode Format n’utilise pas la méthode Append précédemment utilisée mais la méthode AppendFormat. Cette méthode effectue un travail supplémentaire par rapport à la méthode Append puisqu’elle parse le contenu de la chaine afin de savoir comment injecter les différents arguments. On se retrouve une deuxième cause de performance dégradée.
En résumé, la méthode String.Format est moins performante que String.Concat pour la concaténation à cause de l’utilisation d’un StringBuilder en interne et de l’opération de parsing de la chaine.
 
» Démarrer une discussion
 
Discussion démarée par bleroy le 03/03/2010 à 09:00, 1 commentaire(s).