В статье объясняется, как работают подсказки ёмкости (capacity hints) в Go для срезов и карт. Срезы имеют явную капасити - это максимальное количество элементов, которое можно в них хранить до перераспределения памяти.
В отличие от срезов, у мап нет понятия фиксированной ёмкости, а капасити является только приблизительной оценкой количества элементов. Для небольших капасити (до 8 элементов) Go использует ленивое выделение памяти: при создании мапы память под бакеты не выделяется, а первый бакет создаётся только при первой вставке элемента.
Для больших капасити Go сразу рассчитывает оптимальное количество бакетов, необходимое для поддержания коэффициента загрузки (6.5 пар на бакет), и выделяет память с запасом, чтобы избежать преждевременных расширений карты
27.02.2026
Похожее
06.03.2026
Кто отменил контекст?
В Go стандартные ошибки context canceled и context deadline exceeded - это те ещ...
05.03.2026
Аллокаторы
Автор продолжает цикл статей про рантайм Go. Теперь на очереде разбор аллокаторо...
04.03.2026
eBPF и XDP
Еще одна неплохая статья по eBPF Аббревиатура eBPF расшифровывается как exten...
03.03.2026
Уменьшаем бинарник
Инженеры Datadog рассказали, как всего за полгода им удалось "похудеть". Они уме...