смотреть? в formats.inc?
Нигде. Самому фасму хэш без надобности. А динамический импорт сделан макросами, и все символы складываются в одну корзину.
не-а, там точно в динамических бинарях есть кусок с хэшами
Хеш нужен, чтобы разложить символы по buckets (bucket_index = hash % nbucket). Если у тебя nbucket = 1, то bucket_index = 0 всегда, то есть хеш тебе не нужен.
а как понять сколько buckets надо?
Это сложный вопрос. Чем больше buckets, тем быстрее лукап (больше шанс, что ты найдёшь символ за O(1), без последующего прохода по chain), но при этом будет расти размер хеш-таблицы и возможно неиспользованные элементы в ней появятся. При nbucket = 1 у тебя минимальный размер, но вся хеш-таблица вырождается в связный список со сложностью O(n) при поиске каждого символа.
В быстрой хеш таблице всегда есть неиспользуемые элементы
Обсуждают сегодня