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 ne doivent pas être coûteuses et ne doivent pas allouer de mémoire.Réduisez 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.