Когда map shrinks?

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

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

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

Задача: спроектируйте систему уведомлений (email + push + in-app)