172 похожих чатов

Здравствуйте. Подскажите, пожалуйста, насколько это будет плохой идеей кешировать хеш? Скажем, если

я беру хеш от иммутабельных данных, сохраняю его в u64, и затем каждый раз в имплементации Hash буду записывать в хешер эти 64 бита, то на выходе я буду получать хеш, отличный от закешированного значения даже если буду использовать один и тот же инстанс RandomState.

На первый поверхностный взгляд здесь нет проблемы, но не сломаю ли я таким образом сам алгоритм хеширования, если буду, скажем, целую структуру с такими сущностями хешировать?

5 ответов

12 просмотров

А какая цель? Если нужны быстрые таблицы, возьми hasbrown

Ilya-Lakhin Автор вопроса
Tech Makaka
А какая цель? Если нужны быстрые таблицы, возьми h...

Цель сэкономить на хешировании одних и тех же копий объемных данных. У меня может быть много копий одних и тех же данных, и я не хочу для них пересчитывать хеш каждый раз.

Ilya Lakhin
Цель сэкономить на хешировании одних и тех же копи...

Если у тебя много копий одних и тех же иммутабельных данных это называется Arc

Правильное решение тут сделать HashMap<MyBigKey, usize> и рядом держать Vec<Data>

Ilya-Lakhin Автор вопроса
Αλεχ Zhukovsky
Правильное решение тут сделать HashMap<MyBigKey, u...

Да я согласен, что это правильное решение для хешмапы. Как и с тем, что проблема коллизий вообще не так уж сильно актуальна для хешмап, о чем выше писал @Bear_Metal, и что можно в общем-то и закешировать хеш не сильно переживая о коллизиях, ну или вот сделать "арену с индексами" на коленке, как ты предлагаешь. Но я же нигде не писал, что мне хеш нужен для хешмап. Более того, он мне нужен как раз не для хешмап. ) Поэтому я и переживаю о коллизиях.

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
How to create an OS in C? what to study?
Linus
18
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
а как бы вылезти из ИО, что то типа IO -> Ether или в какую сторону смотреть ? что то туплю
Fedor
14
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
Карта сайта