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
 6 | Conclusion
L’opérateur + et la méthode Concat() ne sont pas aussi lentes que ce que l’on a tendance à croire ou à entendre. Le compilateur transforme les appels à l’opérateur + en appels à cette même méthode qui est performante puisque faisant directement appel au Garbage Collector pour l’allocation d’une zone mémoire de taille fixe et à du code unsafe afin de manipuler string sous forme de pointeurs de caractères.
Ce n’est pas l’appel à l’opérateur + ou à la méthode Concat() qui est couteux c’est l’utilisation de plusieurs expressions de concaténation qui est couteuse en terme :
De performance, car cela multiplie le nombre de réelles concaténations
D’utilisation mémoire, car on multiplie le nombre d’allocations mémoire
Dans le cadre d’un grand nombre d’expressions de concaténations (qui dépend de la taille des chaines à concaténer comme vu dans le Benchmark), il faudra donc passer par le StringBuilder.
 
» Démarrer une discussion
 
Discussion démarée par bleroy le 03/03/2010 à 09:00, 1 commentaire(s).