Incremental map growth — стратегия Go для роста map без больших пауз. Вместо перехеширования всех элементов за раз, Go мигрирует по 1-2 бакета при каждой операции записи. Поле nevacuate в hmap отслеживает, сколько бакетов уже мигрировано. Каждый mapassign/mapdelete вызывает growWork, который эвакуирует следующий бакет. Пока миграция идёт, map хранит и старые и новые бакеты (oldbuckets + buckets). Поиск проверяет флаг evacuated и ищет в нужном массиве. Это amortized O(1) вместо периодических O(n) пауз.
Что такое incremental map growth?
Senior
235 просмотровAFK Offer AI
Что такое gRPC metadata?