Avisos de desempenho

Avisos de desempenho oferecem suporte a aplicativos e bibliotecas de alto desempenho.

Nesta seção

Regra

Descrição

CA1800: Não convertem desnecessariamente

Projeções de duplicados diminuir o desempenho, especialmente quando as projeções são realizadas em instruções de iteração compact.

CA1801: Revise os parâmetros não utilizados

Uma assinatura do método inclui um parâmetro que não é usado no corpo do método.

CA1802: Use literais onde for apropriado

Um campo é declarado estática e somente leitura (compartilhada e somente leitura em Visual Basic) e é inicializada com um valor que seja computáveis em tempo de compilação. Como o valor que é atribuído ao campo de destino é computáveis em tempo de compilação, altere a declaração para uma const (Const em Visual Basic) de campo para que o valor é calculado em tempo de compilação em vez de em tempo de execução.

CA1804: Remover locals não utilizados

Variáveis locais não utilizadas e atribuições desnecessárias aumentam o tamanho de um assembly e diminuem o desempenho.

CA1806: Não ignorar os resultados do método

Um novo objeto é criado, mas nunca é usado, um método que cria e retorna uma nova seqüência de caracteres é chamado e a nova seqüência nunca é usada ou um método de modelo de objeto componente (COM) ou P/Invoke retorna um código de erro ou HRESULT nunca é usado.

CA1809: Evite locals excessivas

Uma otimização de desempenho comum é armazenar um valor em um registro do processador, em vez de memória, o que é conhecido como "enregistering o valor" (em inglês). Para aumentar as chances de que todas as variáveis locais são não registrados, limite o número de variáveis locais para 64.

CA1810: Inicializar embutido de campos estáticos do tipo de referência

Quando um tipo declara um construtor estático explícito, o compilador just-in-time (JIT) adiciona uma verificação para cada método e instância o construtor estático do tipo para certificar-se de que o construtor estático era anteriormente chamado. Verificações do construtor estático podem diminuir o desempenho.

CA1811: Evite código privado de uncalled

Membro (nível de assembly) privado ou interno não tem os chamadores no assembly, ele não é invocado pelo common language runtime e ele não é invocado por um delegado.

CA1812: Evite sem instância classes internas

Uma instância de um tipo de nível de assembly não é criada pelo código no assembly.

CA1813: Evite atributos sem lacre

O .NET Framework a biblioteca de classe fornece métodos para recuperar atributos personalizados. Por padrão, esses métodos pesquisar a hierarquia de herança de atributo. Lacrar o atributo elimina a pesquisa por meio da hierarquia de herança e pode melhorar o desempenho.

CA1814: Preferir irregulares de matrizes multidimensionais

Uma matriz denteada é uma matriz cujos elementos são matrizes. As matrizes que compõem os elementos podem ser de tamanhos diferentes, o que podem resultar em menos perda de espaço para alguns conjuntos de dados.

CA1815: É igual a substituição e o operador equals em tipos de valor

Para tipos de valor, a implementação de Equals herdada usa a biblioteca de reflexão e compara o conteúdo de todos os campos. A reflexão é dispendiosa e comparar todos os campos de igualdade talvez seja desnecessário. Se você espera que os usuários para comparar ou classificar instâncias ou usar instâncias como chaves de tabela de hash, seu tipo de valor deve implementar Equals.

CA1816: Chame GC.SuppressFinalize corretamente

Um método que é uma implementação de Dispose não chama GC.SuppressFinalize ou um método que não é uma implementação de Dispose chama GC.SuppressFinalize ou um método chama GC.SuppressFinalize e passa a algo diferente de (-Me Visual Basic).

CA1819: Propriedades não devem retornar arrays

Matrizes que são retornados pelas propriedades não são protegidos contra gravação, mesmo se a propriedade é somente leitura. Para manter a matriz à prova de violação, a propriedade deve retornar uma cópia da matriz. Normalmente, os usuários não compreenderá as implicações de desempenho adverso de chamar essa propriedade.

CA1820: Testar usando o comprimento da seqüência de cadeias de caracteres vazias

Comparando seqüências de caracteres usando a propriedade String. length ou string. IsNullOrEmpty método é significativamente mais rápido do que usando igual.

CA1821: Remover os finalizadores vazios

Sempre que possível, evite finalizadores causa da sobrecarga de desempenho adicional envolvido na vida útil do objeto de controle. Um finalizador vazio provoca adicionado a sobrecarga sem qualquer benefício.

CA1822: Membros da marca como estático

Membros que não acessar métodos de instância de dados ou chamada de instância podem ser marcados como estáticos (compartilhado no Visual Basic). Depois de marcar os métodos como estático, o compilador emitirá a sites de chamada nonvirtual para esses membros. Isso pode lhe um ganho de desempenho mensuráveis para o código de desempenho confidenciais.

CA1823: Evite campos particulares não utilizados

Campos particulares foram detectados que não parecem ser acessados no assembly.

CA1824: Assemblies de marca com o NeutralResourcesLanguageAttribute

O atributo NeutralResourcesLanguage informa o ResourceManager da linguagem que foi usado para exibir os recursos de uma cultura neutra para um assembly. Isso melhora o desempenho da pesquisa do primeiro recurso que você deseja carregar e pode reduzir o seu conjunto de trabalho.