Пару месяцев назад я написал пост о Go и кэшах ЦП: https://teivah.medium.com/go-and-cpu-caches-af5d32cc5592

Затем мне захотелось расширить рамки этого поста. Следуя этой идее, у меня была возможность выступить с докладом на GopherCon Turkey 2020. Тема следующая: Механическая симпатия в Go.

Я попытался осветить следующие темы:

  • Введение в архитектуру ЦП
  • Принципы локальности отсчета: временная и пространственная локальность, предсказуемость, шаг
  • Дизайн, ориентированный на данные: введение, срез структур против структуры срезов и т. д.
  • Подводные камни из-за плохого использования кешей ЦП: ассоциативность кеша, критический шаг
  • Параллелизм: ложный обмен

Вот видео моего выступления:

Начало разговора, к сожалению, было вытеснено. Тем не менее, вы можете найти здесь слайды для отсутствующего вступления: