Partager via


Modifications de collection immuables inefficaces

Cet article décrit les insights sur les performances lors de la modification de collections immuables telles que ImmutableList<T>.

La cause

La modification d’une collection immuable (par exempleAdd, ou RemoveInsert) entraîne des performances lentes.

Description de l’insight sur les performances

Chaque modification d’une collection immuable crée une nouvelle copie de la collection, ce qui entraîne des allocations de mémoire excessives et une utilisation du processeur. Cela est particulièrement inefficace lorsque des modifications sont effectuées fréquemment, dans des boucles ou dans des chemins de code critiques pour les performances.

Si possible, utilisez une collection mutable (par exemple List<T>) pendant la construction ou dans des chemins chauds, puis convertissez en collection immuable uniquement si nécessaire. Les collections mutables permettent d’effectuer des modifications efficaces sur place, tandis que les collections immuables sont mieux utilisées pour la sécurité des threads et les scénarios où les modifications sont peu fréquentes.

Comment examiner un avertissement

Dans l’outil Utilisation du processeur, cliquez sur Afficher le code source pour trouver où des collections immuables sont modifiées. Si possible, refactorisez l’utilisation d’une collection mutable dans du code respectant les performances et convertissez en collection immuable uniquement si nécessaire.

Voir aussi

Documentation sur les collections immuables