Выбор ответа Senior Слайсы и мапы изнутри обновлено

Устройство map в Go 1.24+

Вопрос

Что изменилось во внутреннем устройстве map в Go 1.24?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Swiss tables: группы по 8 слотов с управляющими байтами. В Go 1.24 мапа переписана на Swiss tables: слоты сгруппированы по 8, у группы есть контрольное слово с 7 битами хеша на слот, по нему быстро отсеивают кандидатов.

Варианты ответа

  1. Мапы стали сохранять порядок вставки ключей при обходе
  2. Мапы стали потокобезопасными за счёт шардированных мьютексов
  3. Swiss tables: группы по 8 слотов с управляющими байтамиправильный ответ
  4. Мапы стали деревом поиска, а обход стал отсортированным

Разбор

В Go 1.24 мапа переписана на Swiss tables: слоты сгруппированы по 8, у группы есть контрольное слово с 7 битами хеша на слот, по нему быстро отсеивают кандидатов. Большие мапы делятся на независимые таблицы, которые растут по отдельности. Семантика осталась прежней: порядок обхода случайный, конкурентная запись так же запрещена, деревом мапа не стала.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.