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.