Udostępnij za pośrednictwem


DA0010: Droga GetHashCode

Identyfikator reguły

DA0010

Kategoria

Użycie .NET Framework

Metody profilowania

Próbkowanie

Pamięć .NET

Wiadomość

Funkcje GetHashCode powinny być tanie i nie przydzielać pamięci.Jeśli jest to możliwe, należy ograniczać złożoność funkcji skrótu.

Typ komunikatu

Ostrzeżenie

Przyczyna

Wywołania metody GetHashCode tego typu stanowią znaczącą część danych profilowania lub metoda przydziela pamięć.

Opis reguły

Mieszanie jest techniką umożliwiającą szybkie lokalizowanie konkretnego elementu w dużej kolekcji.Ponieważ tabele mieszania mogą być bardzo duże i muszą obsługiwać bardzo wysoki poziom dostępu, tabele mieszania powinny być bardzo wydajne.Implikacją tego wymagania jest to, że metody GetHashCode w .NET Framework nie powinny przydzielać pamięci.Przydzielenie pamięci zwiększa obciążenie modułu zbierającego elementy bezużyteczne oraz naraża metodę na potencjalne opóźnienia, jeśli wyrzucenie elementów bezużytecznych okaże się niezbędne w wyniku żądania alokacji.

Jak naprawić naruszenia

Należy zmniejszyć złożoność metody.