Compartilhar via


.Regras de desempenho de uso do NET Framework

Regras de desempenho na.Categoria de uso do NET Framework identificar métodos específicos que podem ser otimizados e também identificam padrões de uso mais gerais, como coleta de lixo e contenção de bloqueio, que pode ser investigada para problemas de desempenho.

DA0001: StringBuilder de uso para concatenações

Chamadas para String.Concat(String, String) são uma parte significativa dos dados de criação de perfil.Considere o uso de StringBuilder classe para construir seqüências de caracteres de vários segmentos.

DA0005: Freqüente coleções de GC2

Um número relativamente alto de.Objetos de memória NET estão sendo recuperados na coleta de lixo 2 de geração.Se muitos objetos de curta duração sobrevivem a coleta de geração 1, o custo do gerenciamento de memória pode facilmente se tornar excessivo.

DA0006: Equals () de substituição para tipos de valor

Chamadas para o Equals são uma parte significativa dos dados de criação de perfil de método ou operadores de igualdade de um tipo de valor público.Considere a implementação de um método mais eficiente.

DA0007: Evitar o uso de exceções para o fluxo de controle

Uma alta taxa de.Eram chamados de manipuladores de exceção do NET Framework nos dados de criação de perfil.Considere usar outra lógica do fluxo de controle para reduzir o número de exceções que são lançados.

DA0010: GetHashCode cara

Chamadas para o GetHashCode o método do tipo são uma parte significativa dos dados de criação de perfil ou o GetHashCode método aloca memória.Reduza a complexidade do método.

DA0011: CompareTo cara

O CompareTo o método do tipo é caro ou o método aloca memória.Reduzir a complexidade do CompareTo método.

DA0012: A quantidade significativa de reflexão

Chamadas para o System.Reflection métodos como InvokeMember e GetMember ou para os métodos de tipo, como InvokeMember são uma parte significativa dos dados de criação de perfil.Quando possível, considere substituir esses métodos com o enlace inicial para os métodos dos assemblies dependentes.

DA0013: Alto uso de string. split ou String. substring

Chamadas para o String.Split ou Substring métodos são uma parte significativa dos dados de criação de perfil.Considere o uso de IndexOf ou IndexOfAny se você estiver testando a existência de uma subseqüência de caracteres em uma seqüência.

DA0018: limites de memória de aplicativo de 32 bits em execução no processo gerenciado

Os dados do sistema que são coletados durante a criação de perfil executar indicam o.Memória do NET Framework heaps aproximou o tamanho máximo que o gerenciado pilhas pode chegar em um processo de 32 bits.Considere a criação de perfil novamente usando o.NET memória definindo o perfil de método e otimizando o uso de recursos gerenciados pelo aplicativo.

DA0021: Alta taxa de coletas de lixo da Gen 1

Um número relativamente alto de.Objetos de memória NET estão sendo recuperados na coleta de lixo 1 de geração.Se muitos objetos de curta duração sobrevivem a coleta de geração 0, o custo do gerenciamento de memória pode facilmente se tornar excessivo.

DA0022: Alta taxa de coletas de lixo Gen 2

Um número alto de.Objetos de memória NET estão sendo recuperados na coleta de lixo 2 de geração.Se muitos objetos de curta duração sobrevivem a coleta de geração 1, o custo do gerenciamento de memória pode facilmente se tornar excessivo.Essa regra é acionado quando a taxa de contenções de bloqueio ultrapassa o valor de limite superior da regra de DA0005.

DA0023: Tempo de alta utilização da CPU de GC

Dados de desempenho do sistema que são coletados durante perfilação indicam que a quantidade de tempo é gasto na coleta de lixo é significativa em comparação com o tempo de processamento total do aplicativo.

DA0024: Tempo de CPU excessiva do GC

Dados de desempenho do sistema que são coletados durante perfilação indicam que a quantidade de tempo é gasto na coleta de lixo é excessivamente alta em comparação com o tempo de processamento total do aplicativo.Essa regra é acionado quando a quantidade de tempo gasto na coleta de lixo excede o valor de limite superior da regra DA0023.

DA0038: Contenções de alta taxa de bloqueio

Sistema dados de desempenho coletados com os dados de criação de perfil indicam que uma taxa muito alta de contenções de bloqueio ocorreu durante a execução do aplicativo.Considere a criação de perfil novamente usando a método de criação de perfil de simultaneidade para encontrar a causa das contenções.

DA0039: Contenções muito taxa alta de bloqueio

Sistema dados de desempenho coletados com os dados de criação de perfil indicam que uma taxa excessivamente alta de contenções de bloqueio ocorreu durante a execução do aplicativo.Considere a criação de perfil novamente usando a método de criação de perfil de simultaneidade para encontrar a causa das contenções.Essa regra é acionado quando a taxa de contenções de bloqueio ultrapassa o valor de limite superior da regra de DA0038.