Partilhar via


Travessia ineficiente do LinkedList

Este artigo descreve informações de desempenho ao percorrer LinkedList<T> coleções.

Motivo

Atravessar um LinkedList<T> para encontrar elementos resulta em desempenho lento.

Descrição do insight de desempenho

LinkedList<T> não fornece O(1) acesso a elementos por índice. Cada travessia pela lista, especialmente em loops ou loops aninhados, resulta em complexidade de tempo O(n). Isso pode causar uma degradação significativa do desempenho ao pesquisar itens com frequência ou em grandes listas vinculadas.

Se possível, considere a utilização List<T> de ou Dictionary<TKey,TValue>. List<T> fornece acesso O(1) por índice e Dictionary<TKey, TValue> fornece pesquisas O(1) por chave. Essas alternativas geralmente são mais eficientes para a maioria dos padrões de acesso em comparação com a passagem por uma lista vinculada.

Como investigar um aviso

Na ferramenta Uso da CPU, clique em Exibir código-fonte para localizar onde LinkedList<T> a travessia é usada. Se possível, refatore para usar um tipo de coleção diferente que forneça acesso mais rápido para seu cenário.

Consulte também

Coleções e estruturas de dados