Швейцарские таблицы
Спустя много лет команда Go решила изменить реализацию map
!
Начиная с Go 1.24, она основана на SwissTable и предлагает несколько оптимизаций (со слов разработчиков, лично не проверял):
- Чтение и запись в больших картах (>1024 записей) быстрее на ~30%.
- Запись в аллоцированных картах (с установленной емкостью) быстрее на ~35%.
- Итерация в целом быстрее на ~10%, для карт с низкой наполненностью (большая емкость, мало записей) на ~60%.
Вернуться к старой реализации можно через переменную окружения GOEXPERIMENT=noswissmap
при сборке (надо сказать, что не все остались довольны новыми картами).
Если интересно, вот исходники.
★ Подписывайтесь на новые заметки.