Compartilhar via


Passagem ineficiente do LinkedList

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

Motivo

A passagem de um LinkedList<T> para localizar elementos resulta em desempenho lento.

Descrição do insight de desempenho

LinkedList<T> não fornece acesso O(1) aos elementos por índice. Cada passagem pela lista, especialmente em loops ou loops aninhados, resulta em complexidade temporal de 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 usar List<T> ou Dictionary<TKey,TValue>. List<T> fornece acesso de O(1) por índice e Dictionary<TKey, TValue> fornece pesquisas de 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 de uma lista vinculada.

Como investigar um aviso

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

Consulte também

Coleções e estruturas de dados