Partilhar via


Modificações de coleção imutáveis ineficientes

Este artigo descreve informações 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 da CPU. Isso é especialmente ineficiente quando as modificações são executadas com frequência, em loops ou em caminhos de código críticos para o 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. As coleções mutáveis permitem modificações eficientes no local, enquanto as coleções imutáveis são melhor usadas para segurança de roscas 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 localizar onde as coleções imutáveis estão sendo modificadas. Se possível, refatore para usar uma coleção mutável em código sensível ao desempenho e converta em uma coleção imutável somente quando necessário.

Consulte também

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