Сколько байт занимает map?

Middle+
871 просмотров
AFK Offer AI

Переменная map — 8 байт (один указатель на runtime.hmap). Структура hmap: ~48 байт + массив бакетов. Каждый бакет: 8 tophash байт + 8 ключей + 8 значений + overflow-указатель.

Реальный размер зависит от количества элементов, типов ключа/значения и load factor. Пустой make(map[string]int) аллоцирует hmap + один бакет. make(map[string]int, hint) с hint > 8 пре-аллоцирует больше бакетов.

После удаления элементов память бакетов не освобождается до пересоздания map.

Следующий вопрос

Что такое benchmark в Go?