DA0010. Затратный метод GetHashCode
Идентификатор правила |
DA0010 |
Категория |
Использование .NET Framework |
Методы профилирования |
Выборка Память .NET |
Сообщение |
Функции GetHashCode должны быть «дешевыми» и не должны выделять память.Если возможно, уменьшите сложность функции хэш-кода. |
Тип сообщения |
Предупреждение |
Причина
Вызовы метода типа GetHashCode составляют значительную долю данных профилирования, либо метод выделяет память.
Описание правила
Хэширование — это метод для быстрого нахождения определенного элемента в большой коллекции.Поскольку хэш-таблицы могут быть очень большими и должны поддерживать очень высокую интенсивность доступа, то они должны быть наиболее эффективны.Это требование подразумевает, что методам GetHashCode в .NET Framework не следует выделять память.Выделение памяти увеличивает нагрузку на сборщик мусора и открывает вероятность потенциальных задержек метода, если станет необходимо выполнить сборку мусора в результате выполнения запроса на выделение памяти.
Устранение нарушений
Следует упростить этот метод.