"Швейцарская таблица" - это продвинутый движок для хэш-таблиц, который сейчас используется в новых версиях Go. Идея в том, чтобы отойти от примитивного линейного поиска, когда при коллизии мы просто тыкаемся в следующую ячейку, и использовать хитрую последовательность шагов, которая не дает образовываться "пробкам" из занятых слотов.
Но все соль в группровке. Вместо одного ключа в ячейке мы храним сразу по 8 штук, и для каждой группы добавляем специальные контрольные байты (младшие 7 битов хэша). Это позволяет за одну операцию сравнивать с хэшем все восемь элементов через битовые трюки с uint64, а это очень быстро.
На практике хоть обычный подход и шустрее на малых объемах, swiss table раскрывается при высокой заполненности: если забить ее под завязку, она тормозит в разы меньше обычной
05.05.2026
Похожее
04.05.2026
Простое профилирование кучи
Статья от ребят из Coroot. Эти ребята знают толк в профилировании и вьювабилити....
02.05.2026
go tool task
Я очень люблю Taskfile и в своих петпроектах не пользуюсь Makefile. Это реально ...
01.05.2026
Выбираем логер
На протяжении долгого времени в Go выбор библиотеки логирования был выбором межд...
30.04.2026
Контейнеры
Статья толково объясняет, как работают контейнеры изнутри. Автор на пальцах ...