Re[5]: MSVC std::unordered_map bucket_count()
От: Кодт Россия  
Дата: 19.12.16 16:50
Оценка: 1 (1) +1
Здравствуйте, Alexander G, Вы писали:

AG>На строках (небольшое количество слов некоторого скриптоязыка) получается коллизий в бусте не меньше, и std чуть лучше при тесте с локальной студией.


Вопрос не в том, на каком примитивном наборе та или иная хеш-таблица будет работать лучше-хуже.
А как она будет работать на типичном твоём наборе.

Если имеешь дело со строками, то — какая природа этих строк.
Возможно, что в качестве хеша сойдёт дворд из первых четырёх букв: если твои строки различаются прямо с первой-четвёртой позиции. Считать CRC для длинных строк в этом случае будет избыточно.
Но так же очевидно, что этот хеш очень плохо дружит с политикой "количество корзин — степень 2", так как итоговый хеш (по модулю от количества корзин) будет не двордом, а байтом или вордом от первых 1 или 2 букв соответственно.
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.