"Швейцарская таблица" - это продвинутый движок для хэш-таблиц, который сейчас используется в новых версиях Go. Идея в том, чтобы отойти от примитивного линейного поиска, когда при коллизии мы просто тыкаемся в следующую ячейку, и использовать хитрую последовательность шагов, которая не дает образовываться "пробкам" из занятых слотов.
Но все соль в группровке. Вместо одного ключа в ячейке мы храним сразу по 8 штук, и для каждой группы добавляем специальные контрольные байты (младшие 7 битов хэша). Это позволяет за одну операцию сравнивать с хэшем все восемь элементов через битовые трюки с uint64, а это очень быстро.
На практике хоть обычный подход и шустрее на малых объемах, swiss table раскрывается при высокой заполненности: если забить ее под завязку, она тормозит в разы меньше обычной
05.05.2026
Похожее
03.08.2026
Визуализируем GC
Статья наглядно исследует новый сборщик мусора Green Tea в Go 1.25/1.26. Авт...
30.07.2026
Кодим чат
Автор просто час пишет чат. Никаких слов, никакого хайпа. Просто час кодинга под...
29.07.2026
Хранение паскеев
Автор предлагает формат для паскеев специальный формат. Что-то похожее на интеро...
28.07.2026
Арены жалко
Go отказался от экспериментальных Memory Arenas - механизма, позволявшего выделя...