DA0010 : GetHashCode coûteuxDA0010: Expensive GetHashCode

ID de règleRule Id DA0010DA0010
CategoryCategory Utilisation du .NET Framework.NET Framework Usage
Méthodes de profilageProfiling methods ÉchantillonnageSampling

Mémoire .NET.NET Memory
MessageMessage Les fonctions GetHashCode doivent être peu coûteuses et n’allouer aucune mémoire.GetHashCode functions should be cheap and not allocate any memory. Réduisez si possible la complexité de la fonction de code de hachage.Reduce complexity of hash code function if possible.
Type de messageMessage type WarningWarning

CauseCause

Les appels à la méthode GetHashCode du type représentent une part importante des données de profilage, ou la méthode alloue de la mémoire.Calls to the GetHashCode method of the type are a significant proportion of the profiling data or the method allocates memory.

Description de la règleRule Description

Le hachage est une technique pour localiser rapidement un élément particulier dans une collection de grande taille.Hashing is a technique for rapidly locating a particular item in a large collection. Comme les tables de hachage peuvent être très grandes et avoir à supporter des accès à des débits très élevés, elles doivent être extrêmement efficaces.Because hash tables can be very large and have to support very high rates of access, hash tables should be extremely efficient. Une conséquence de cette nécessité est que les méthodes GetHashCode dans le .NET Framework ne doivent pas allouer de mémoire.An implication of this requirement is that GetHashCode methods in the .NET Framework should not allocate memory. L’allocation de mémoire augmente la charge sur le récupérateur de mémoire et expose la méthode à des délais potentiels s’il devient nécessaire d’exécuter la garbage collection suite à la demande d’allocation.Allocating memory increases the load on the garbage collector and exposes the method to potential delays if it become necessary to run garbage collection as a result of the allocation request.

Comment corriger les violationsHow to Fix Violations

Simplifiez la méthode.Reduce the complexity of the method.