Поделиться через


DA0010. Затратный метод GetHashCode

Идентификатор правила

DA0010

Категория

Использование .NET Framework

Методы профилирования

Выборка

Память .NET

Сообщение

Функции GetHashCode должны быть «дешевыми» и не должны выделять память.Если возможно, уменьшите сложность функции хэш-кода.

Тип сообщения

Предупреждение

Причина

Вызовы метода типа GetHashCode составляют значительную долю данных профилирования, либо метод выделяет память.

Описание правила

Хэширование — это метод для быстрого нахождения определенного элемента в большой коллекции.Поскольку хэш-таблицы могут быть очень большими и должны поддерживать очень высокую интенсивность доступа, то они должны быть наиболее эффективны.Это требование подразумевает, что методам GetHashCode в .NET Framework не следует выделять память.Выделение памяти увеличивает нагрузку на сборщик мусора и открывает вероятность потенциальных задержек метода, если станет необходимо выполнить сборку мусора в результате выполнения запроса на выделение памяти.

Устранение нарушений

Следует упростить этот метод.