Выбор ответа Senior Слайсы и мапы изнутри обновлено
Устройство map в Go 1.24+
Вопрос
Что изменилось во внутреннем устройстве map в Go 1.24?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Swiss tables: группы по 8 слотов с управляющими байтами. В Go 1.24 мапа переписана на Swiss tables: слоты сгруппированы по 8, у группы есть контрольное слово с 7 битами хеша на слот, по нему быстро отсеивают кандидатов.
Варианты ответа
- Мапы стали сохранять порядок вставки ключей при обходе
- Мапы стали потокобезопасными за счёт шардированных мьютексов
- Swiss tables: группы по 8 слотов с управляющими байтамиправильный ответ
- Мапы стали деревом поиска, а обход стал отсортированным
Разбор
В Go 1.24 мапа переписана на Swiss tables: слоты сгруппированы по 8, у группы есть контрольное слово с 7 битами хеша на слот, по нему быстро отсеивают кандидатов. Большие мапы делятся на независимые таблицы, которые растут по отдельности. Семантика осталась прежней: порядок обхода случайный, конкурентная запись так же запрещена, деревом мапа не стала.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Ещё по теме «Слайсы и мапы изнутри»
- Разбить слайс на части по k на Go
- Удаление дубликатов с сохранением порядка на Go
- Группировка анаграмм на Go
- Циклический сдвиг слайса на Go
- Число подмассивов с суммой k на Go
- Топ-k частых слов на Go
- Что выведет Go: append при полной ёмкости
- Что выведет Go: два append в один подслайс