В статье объясняется, как работают подсказки ёмкости (capacity hints) в Go для срезов и карт. Срезы имеют явную капасити - это максимальное количество элементов, которое можно в них хранить до перераспределения памяти.
В отличие от срезов, у мап нет понятия фиксированной ёмкости, а капасити является только приблизительной оценкой количества элементов. Для небольших капасити (до 8 элементов) Go использует ленивое выделение памяти: при создании мапы память под бакеты не выделяется, а первый бакет создаётся только при первой вставке элемента.
Для больших капасити Go сразу рассчитывает оптимальное количество бакетов, необходимое для поддержания коэффициента загрузки (6.5 пар на бакет), и выделяет память с запасом, чтобы избежать преждевременных расширений карты
27.02.2026
Похожее
07.09.2026
У нас отмена!
Статья разбирает, как пакет singleflight в Go предотвращает лавину запросов к кэ...
05.09.2026
DDD во времена AI
Статья утверждает, что с ростом AI-кодинга идеи Domain-Driven Design становятся ...
03.09.2026
Конкурентный сервер на Go
Это восьмая часть серии о конкурентных сетевых серверах, в этот раз посвященная ...
03.09.2026
Горутины повсюду
Частенько мы пишем Go-сервисы, не задумываясь о том, кто и как запускает наши го...