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.