Когда map shrinks?

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

Короткий ответ — никогда. Map в Go не уменьшается автоматически после удаления элементов. Buckets остаются аллоцированными. Есть один случай sameSizeGrow — когда много overflow buckets но мало элементов, map может перестроиться без увеличения. Но это не уменьшение. Если нужно реально освободить память — создай новую map и скопируй оставшиеся элементы. В Go 1.21+ есть clear() — очищает но не shrinks.

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

Как разделить read и write модели?