Статья подробно разбирает переход Go 1.24 от классической bucket-архитектуры мап к Swiss Tables - дизайну, позаимствованному из Abseil, который заменяет цепочки оверфлоу-указателей на плоское открытое адресование с компактными контрольными байтами и групповым probing'ом по 8 слотов.
Swiss Tables позволяют совершать меньше промахов кеша за счет отказа от «погони за указателями», увеличивается допустимая плотность заполнения, и фильтрация кандидатов становится более быстрой по h2-отпечатку до полноценного сравнения ключей.
На микробенчмарках доступ к большим мапам ускорился на 30–35%, итерация - до 60% на разреженных картах, однако на уровне приложений выигрыш скромнее, около 1.5% в среднем, а в сценариях с холодным кешем и очень большими разреженными мапами возможны регрессы.
Да-да, уже 100% раз читали про швейцарские таблицы. Но статью в закладки лучше добавить
05.08.2026
Похожее
14.09.2026
Шейдеры на ebiten
Практический разбор пиксельных шейдеров в игровом движке Ebitengine для Go, где ...
08.09.2026
Прокси для базы данных
Автор пишет простой такой прокси на Go в учебных целях вдохновившись статьей Fig...
07.09.2026
У нас отмена!
Статья разбирает, как пакет singleflight в Go предотвращает лавину запросов к кэ...
05.09.2026
DDD во времена AI
Статья утверждает, что с ростом AI-кодинга идеи Domain-Driven Design становятся ...