Автор ставит забавный эксперимент: найти самый медленный способ просуммировать массив из 2^26 целых чисел на C++, меняя только порядок доступа к элементам. Он умудряется превзойти по медлительности даже случайный доступ более чем на 30%.
Отправной точкой служат линейный проход и случайная перестановка Фишера-Йетса. После чего автор шаг за шагом выстраивает патологический паттерн, последовательно эксплуатируя устройство памяти: доступ с шагом в кэш-линию убивает переиспользование кэша, шаг в целую страницу ломает аппаратный префетчер и создает конфликтные промахи из-за наборно-ассоциативного кэша, а увеличение дистанции переиспользования выбивает данные из приватных кэшей ядра.
Короче, действительно интересная статья, которая может многому научить по работе с памятью. Несмотря на нарочито комичную цель, статья служит наглядным уроком о работе кэшей, префетчеров, MMU и DRAM
15.07.2026
Похожее
27.08.2026
Интернет на калькуляторе
Радиолюбитель EI3LH, увлекся карманными компьютерами Casio и сумел запустить нас...
26.08.2026
День недели
Статья посвящена вычислению дня недели из счетчика дней и показывает, что эта, к...
25.08.2026
Git в больших масштабах
Автор затрагивает интересную тему - сложно хостить большие Git-репозитории в бол...
24.08.2026
Табы, пробелы, ручной инструмент и ремни безопасности
Глядя на скандальную миграцию Bun с Zig на Rust с помощью Claude Code и ссоры ме...