.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: Use StringBuilder 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: Coleções freqüentes 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: Substituir equals () para os tipos de valor

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

DA0007: Evite usar exceções para o fluxo de controle

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

DA0010: GetHashCode caro

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

DA0011: Caro CompareTo

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

DA0012: Quantidade significativa de reflexão

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

DA0013: Alto uso de string. Split ou string. substring

Chama 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 de caracteres.

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

Os dados do sistema são coletados durante a criação de perfil execute 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 da geração 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 excede o valor de limite superior da regra de DA0005.

DA0023: Alto tempo de CPU de GC

Dados de desempenho do sistema 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 excessivo de CPU de GC

Dados de desempenho do sistema 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 de DA0023.

DA0038: Contenções de altas 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: Muito contenções de alta taxa 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 excede o valor de limite superior da regra de DA0038.