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.

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.

Compartilhe:

Tiago Tartari

Tiago Tartari

Eu ajudo e capacito pessoas e organizações a transformar problemas complexos em soluções práticas usando a tecnologia para atingir resultados extraordinários.

Qual é o desafio
que você tem hoje?