DA0010 : GetHashCode coûteux

ID de la règle

DA0010

Catégorie

Utilisation du .NET Framework

Méthodes de profilage

Échantillonnage

Mémoire .NET

Message

Les fonctions GetHashCode doivent être peu coûteuses et ne pas allouer de mémoire. Réduit la complexité de la fonction de code de hachage si possible.

Type de message

Avertissement

Cause

Les appels à la méthode GetHashCode du type représentent une proportion significative des données de profilage ou la méthode alloue de la mémoire.

Description de la règle

Le hachage est une technique pour la recherche rapide d'un élément particulier dans une grande collection. Étant donné que les tables de hachage peuvent être très grandes et devoir prendre en charge des taux très élevés d'accès, les tables de hachage doivent être extrêmement efficaces. Une conséquence de cette spécification est que les méthodes GetHashCode dans le .NET Framework ne doivent pas allouer de mémoire. L'allocation de la mémoire augmente la charge sur le garbage collector et expose la méthode à des délais potentiels s'il devient nécessaire d'exécuter le garbage collection fonctionné en raison de la demande d'allocation.

Comment corriger les violations

Réduisez la complexité de la méthode.