Compartir a través de


Modificaciones inmutables inmutables ineficaces

En este artículo se describe información de rendimiento al modificar colecciones inmutables, como ImmutableList<T>.

Causa

La modificación de una colección inmutable (como Add, Removeo Insert) da como resultado un rendimiento lento.

Descripción de la información de rendimiento

Cada modificación de una colección inmutable crea una nueva copia de la colección, lo que da lugar a asignaciones excesivas de memoria y uso de CPU. Esto es especialmente ineficaz cuando las modificaciones se realizan con frecuencia, en bucles o en rutas de acceso de código críticas para el rendimiento.

Si es posible, use una colección mutable (como List<T>) durante la construcción o en rutas de acceso activas y convierta en una colección inmutable solo cuando sea necesario. Las colecciones mutables permiten modificaciones en contexto eficaces, mientras que las colecciones inmutables se usan mejor para la seguridad de subprocesos y escenarios en los que las modificaciones son poco frecuentes.

Cómo investigar una advertencia

En la herramienta Uso de CPU, haga clic en Ver código fuente para buscar dónde se modifican las colecciones inmutables. Si es posible, refactorice para usar una colección mutable en código sensible al rendimiento y convertirla en una colección inmutable solo cuando sea necesario.

Consulte también

Documentación de colecciones inmutables