Desempenho (guia de programação C#)
O termo desempenho geralmente refere-se a velocidade de execução de um programa.Às vezes, você pode aumentar a velocidade de execução seguindo algumas regras básicas em seu código-fonte.Em alguns programas, é importante examinar detalhadamente o código e usar geradores de perfis para certificar-se de que está sendo executado execução sistema autônomo fsistema autônomot sistema autônomo possíveis.Em outros programas, não é necessário executar essa otimização porque o código está sendo executado forma aceitável fsistema autônomot sistema autônomo é gravada.
Quando você medir e otimizar para desempenho, você deve seguir estas orientações Geral:
Comece definindo metas de desempenho e medir o desempenho do programa para determinar quando seu código é não cumprimento desses objetivos.
gravar seu código inicialmente, de modo que esteja correto, segue os princípios de mercadoria design e expressa claramente sua intenção.Otimize posterior somente se você determinar que ele não atende os objetivos de desempenho.Código que é otimizado para desempenho geralmente é mais difícil de ler e manter.É geralmente melhor escrever código que esteja legível, robusto e fácil de manter, mesmo que ele é um pouco mais lento que o código mais otimizado que você poderia escrever.
Se você precisa otimizar, comece com as partes mais lentas do seu programa primeiro.Se você determinar que um programa não atinge as metas de desempenho, identificar os locais específicos onde o desempenho pode ser melhorado e os problemas de desempenho são principais causas do problema.Geralmente não faz sentido para otimizar um método chamado raramente, ou para otimizar o método A ser executado em menos de 50 milissegundos se o programa sistema autônomo um todo tem de esperar 30 segundos para o método B para executar em outro thread.
conversão boxing e conversão conversão unboxing
É melhor evitar o uso de valor tipos em situações em que devem ser in a box um alto número de vezes, por exemplo, em classes de coleções não genéricas, sistema autônomo System.Collections.ArrayList. Você pode evitar a conversão boxing dos tipos de valor usando coleções genéricas, sistema autônomo System.Collections.Generic.List<T>. conversão boxing e conversão conversão unboxing são processos computacionalmente caros.Quando um tipo de valor for in a box, deve ser criado um objeto totalmente novo.Isso pode levar até 20 vezes mais do que uma simples referência atribuição.Quando conversão conversão unboxing, o processo de conversão pode demorar quatro vezes, desde que uma atribuição.Para obter mais informações, consulte conversão boxing e conversão conversão unboxing.
Sequências
Quando você concatenar um grande número de variáveis de seqüência de caracteres, por exemplo em um loop apertado, usar System.Text.StringBuilder instead of o translation from VPE for Csharp operador +.Para obter mais informações, consulte Como: Concatenar várias cadeias de caracteres (guia de programação translation from VPE for Csharp).
Destructors
Destruidores vazios não devem ser usados.Quando uma classe contém um destruidor, uma entrada é criada na fila de finalizar.Quando o destruidor é chamado, o coletor de lixo é chamado para processar a fila.Se o destruidor estiver vazio, isso simplesmente resultados em perda de desempenho.Para obter mais informações, consulte Destruidores.
Outros recursos
Consulte também
Conceitos
Referência
Segurança (guia de programação C#)
Date |
History |
Motivo |
---|---|---|
Julho de 2008 |
Informações adicionadas à seção sobre conversão boxing e conversão conversão unboxing. |
Aprimoramento de informações. |
Julho de 2008 |
Adicionado a seção sobre seqüências de caracteres. |
Aprimoramento de informações. |
Julho de 2008 |
Informações adicionadas à introdução. |
Aprimoramento de informações. |