DA0010: GetHashCode caro
Identificação da regra |
DA0010 |
<strong>Categoria</strong> |
.Uso do NET Framework |
Métodos de criação de perfil |
Amostragem .NET memória |
Message (Mensagem) |
GetHashCode funções devem ser barata e não alocar qualquer memória. Reduza a complexidade da função de código de hash, se possível. |
Tipo de mensagem |
Aviso |
Causa
Chamadas ao método GetHashCode do tipo são uma parte significativa dos dados de perfil ou o método aloca memória.
Descrição da regra
Hash é uma técnica para localizar rapidamente um item específico em uma coleção grande. Como tabelas de hash podem ser muito grande e tem que oferecer suporte a taxas muito altas de acesso, tabelas de hash devem ser extremamente eficientes. Uma implicação esse requisito é que GetHashCode métodos na.NET Framework não deve alocar memória. Alocação de memória aumenta a carga no coletor de lixo e expõe o método para possíveis atrasos se forem necessário para executar a coleta de lixo, como resultado da solicitação de alocação.
Como corrigir violações
Reduza a complexidade do método.