TGViewer
Чайник из Юты Чайник из Юты @irrationalthings · 121 subscribers
Post #493 202
tophash
Выше было упомянуто, что это "единственное" поле бакета имеет тип [8]uint8. На самом деле, это многоцелевое поле, потому что сразу двум целям служит:
- Если значение элемента больше пяти - это верхние 8 бит (в противовес нижним для адресации) хэша хранящегося там ключа;
- Если же меньше пяти, то это так званое "специальное значение" - обозначая, к примеру, что слот для ключ-значения пустует, или сообщает об эвакуации (на самом деле, если бакет эвакуируется, то ВСЕ tophash значения будут выставлены в evacuated*, а не только конкретные слоты);


Из рационального невежества, я не планирую освещать тему эвакуации. В основном потому, что я в ней и сам не разобрался, да и не сильно желанием горю - мне главное саму концепцию себе спиздить.

Кстати, ещё из интересного - когда верхний байт хэша таки меньше пяти, к нему просто прибавляют пять. Так и гарантируют.

Но помимо флагов, tophash выполняет ещё и очень полезную функцию. А именно - вместо того, чтобы напрямую сравнивать каждый ключ с искомым, мы сначала сверяем верхние байты их хэшей. Так сделано потому, что некоторые ключи сравнивать - очень дорого. Строки, например.
  • 👍 2
  • 🤔 1
More from @irrationalthings
  1. Sep 21, 2026я хрюкнул
  2. Sep 21, 2026гемини
  3. Sep 15, 2026Тот факт, что между нейронками и компрессорами больше общего, чем может показаться - забав…
  4. Sep 15, 2026"Low-Resource" Text Classification: A Parameter-Free Classification Method with Compressor…
  5. Sep 15, 2026Конечно, они сравнивали со средненькими классифицирующими моделями. Там есть пространство…
  6. Sep 15, 2026GZIP наносит ответный удар Вот мы хотим классифицировать текст. Классическая задача для ML…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →