Compartilhar via


Modificações ineficientes da coleção imutável

Este artigo descreve os insights de desempenho ao modificar coleções imutáveis, como ImmutableList<T>.

Motivo

Modificar uma coleção imutável (como Add, Removeou Insert) resulta em desempenho lento.

Descrição do insight de desempenho

Cada modificação em uma coleção imutável cria uma nova cópia da coleção, resultando em alocações excessivas de memória e uso de CPU. Isso é especialmente ineficiente quando as modificações são executadas com frequência, em loops ou em caminhos de código críticos de desempenho.

Se possível, use uma coleção mutável (como List<T>) durante a construção ou em caminhos quentes e converta em uma coleção imutável somente quando necessário. Coleções mutáveis permitem modificações eficientes no local, enquanto coleções imutáveis são melhor usadas para segurança de thread e cenários em que as modificações são pouco frequentes.

Como investigar um aviso

Na ferramenta Uso da CPU, clique em Exibir código-fonte para descobrir onde as coleções imutáveis estão sendo modificadas. Se possível, refatore para usar uma coleção mutável no código que diferencia o desempenho e converta em uma coleção imutável somente quando necessário.

Consulte também

Documentação de coleções imutáveis