Я ожидаю, что производительность будет приблизительно масштабироваться в зависимости от максимального размера, который когда-либо имел карта, но я не ожидаю, что она будет ухудшаться с дополнительными операциями записи и удаления со временем. Есть два компонента;есть время, чтобы проверить все сегменты, которые будут масштабироваться в соответствии с размером, который когда-либо имел карта, и время, чтобы получить результаты, которые будут масштабироваться в зависимости от количества имеющихся в настоящее время записей.
Но добавление и удалениедальше это не должно меняться.
https://play.golang.org/p/Ouj-3MuZvVt
См. также https://github.com/golang/go/issues/20135, отслеживание проблемы "карты не уменьшаются после удаления".
Если вам действительно нужно перебрать очень маленькую часть карты, вы можете создать новую карту, содержащую только те элементы, которые у вас есть, но вставки / удаления не будут стоить вам времени, это максимальный размер карты;обратите внимание, насколько меньше время, если вы добавляете и удаляете 1000 элементов 1000 раз, а не добавляете миллион элементов, а затем удаляете их.