Я хочу уменьшить время выполнения кода. Глядя на некоторые результаты тестирования, я узнал, что GetHashCode() занимает 21,62% от моего времени выполнения.Как уменьшить сложность GetHashCode
Я также получил предупреждение:
Предупреждение 1 DA0010:.. * GetHashCode() = 7,63; Функции GetHashCode должны быть дешевыми и не выделять никакой памяти. Уменьшите сложность хеша функция кода, если это возможно.
фрагменты кода:
Мой GetHashCode() в поле Класс:
public override int GetHashCode()
{
int hash = 7;
hash = (hash * 13) + this.Coordinate.GetHashCode();
return hash;
}
Мой GetHashCode() в Координировать Класс:
public override int GetHashCode()
{
int hash = 17;
hash = (hash * 23) + this.Row.GetHashCode();
hash = (hash * 23) + this.Column.GetHashCode();
return hash;
}
Edit: Row и Column - это только байтовые переменные. Я просто называю их свойство, которое возвращает байт в ГЭТ аксессору
Мой GetHashCode() в судоку Класс:
public override int GetHashCode()
{
int hash = 7;
hash = (hash * 5) + this.Grid.GetHashCode();
return hash;
}
Edit: Сетка просто многомерный массив типа: Field[,]
, я просто позвонить это свойство здесь, которое возвращает сетку Field [,] через доступ к нему.
Вопросы: Как я могу значительно уменьшить сложность моего GetHashCode() и увеличить его производительность? Почему производительность метода GetHashCode() низкая?
Как выглядят методы 'GetHashCode' в' Row' и 'Column'? – siride
Показать 'GetHashCode' для' Row' и 'Column'. –
и 'GetHashCode' класса Grid? – Jehof