Partilhar via


Dicas de desempenho do .NET

O termo desempenho geralmente refere-se à velocidade de execução de um programa. Às vezes, você pode aumentar a velocidade de execução seguindo certas regras básicas em seu código-fonte. Em alguns programas, é importante examinar o código de perto e usar profilers para se certificar de que ele está sendo executado o mais rápido possível. Em outros programas, você não precisa executar essa otimização porque o código está sendo executado aceitavelmente rápido como ele é escrito. Este artigo lista algumas áreas comuns onde o desempenho pode ser prejudicado e dicas para melhorá-lo, bem como links para tópicos adicionais de desempenho. Para obter mais informações sobre planejamento e medição de desempenho, consulte Desempenho

Boxe e Unboxing

É melhor evitar o uso de tipos de valor em situações em que eles devem ser encaixotados um grande número de vezes, por exemplo, em classes de coleções não genéricas, como System.Collections.ArrayList. Você pode evitar o boxe de tipos de valor usando coleções genéricas, como System.Collections.Generic.List<T>. Boxe e unboxing são processos computacionalmente caros. Quando um tipo de valor é encaixotado, um objeto totalmente novo deve ser criado. Isso pode levar até 20 vezes mais do que uma simples tarefa de referência. Ao unboxing, o processo de casting pode levar quatro vezes mais tempo do que uma tarefa. Para obter mais informações, consulte Boxe e Unboxing.

Cadeias

Quando você concatenar um grande número de variáveis de cadeia de caracteres, por exemplo, em um loop apertado, use System.Text.StringBuilder em vez do operador C# + ou os operadores de concatenação do Visual Basic. Para obter mais informações, consulte Como concatenar várias cadeias de caracteres e operadores de concatenação no Visual Basic.

Finalizadores

Não devem ser utilizados finalizadores vazios. Quando uma classe contém um finalizador, uma entrada é criada na fila Finalizar. Quando o finalizador é chamado, o coletor de lixo é chamado para processar a fila. Se o finalizador estiver vazio, isso simplesmente resulta em uma perda de desempenho. Para obter mais informações, consulte Finalizadores e tempo de vida do objeto: como os objetos são criados e destruídos.

Outros Recursos

Consulte também