Tiago Tartari, Microsoft MVP, SRE, Executivo e Especialista em Tecnologia

Utilize List no C# com Capacidade Inicial e Tenha Performance no .NET

publicado em 01 de março de 2021
Tiago Tartari - Microsoft MVP
Conteúdo
Resumo
A falta de performance em aplicações .NET pode ser justificada pelo uso indiscriminado de estrutura de dados como List sem o devido entendimento dela. Podemos melhorar a performance das aplicações .NET em até 62% se utilizarmos a capacidade inicial em listas genéricas.

Conteúdo

Utilize List<T> no C# com capacidade inicial e tenha performance no .NET

Ao escolher a estrutura de dados List<T> no C#, utilize a capacidade inicial. Não é raro problemas de performance em aplicações .NET com C# pelo uso indiscriminado de lista genérica, List<T>, sem especificar a capacidade inicial.

Não utilizar List<T> com capacidade inicial sugere falta de conhecimento

Há uma razão para isso, muito programadores não utilizam a capacidade inicial por falta de conhecimento de como a estrutura de dados funciona. Dessa forma, explico o que acontece com o uso do List<T>.

Ao criarmos uma lista genérica sem a capacidade inicial ser especificada, quando adicionamos o primeiro elemento, automaticamente será criado mais outros , elementos vazios.

Se o limite é atingido, quando adiciono um quinto elemento um novo objeto será criado com oito posições e os valores serão automaticamente copiados para o novo array e a primeira lista descartada.

Utilize List<T> no C# com capacidade inicial e tenha performance no .NET

O motivo da baixa performance ao utilizar uma lista sem a capacidade determinada é o custo de criação do novo array, o custo da cópia da antiga lista para a nova e o descarte da lista antiga.

Determinar a capacidade inicial de um List<T> melhora em até 62% a performance de uma aplicação em .NET

Por fim, quando você termina a capacidade inicial de uma lista genérica, List<T>(capacity) você melhora em até 62% a performance de uma aplicação em .NET. O tempo gasto em criação, cópia e destruição é menor. Além disso, há uma redução, considerável na quantidade de memória alocada.

Granta até 62% de melhoria em performance ao utiliza o List<T> no c# com capacidade inicial e tenha performance no .NET

Conclusão

se criarmos nossas listas utilizando a capacidade inicial, por ser algo simples, podemos otimizar a performance das aplicações em .NET e reduzir recursos computacionais.

Gostou? Me ajude a impactar outras pessoas compartilhando esse post.
conheça mais sobre: .net, estrutura de dados
Tiago Tartari
Tiago Tartari

Ajudo executivos, times de negócios e especialistas técnicos a resolver problemas complexos utilizando a tecnologia como meio para potencializar resultados.