Автор ставит забавный эксперимент: найти самый медленный способ просуммировать массив из 2^26 целых чисел на C++, меняя только порядок доступа к элементам. Он умудряется превзойти по медлительности даже случайный доступ более чем на 30%.
Отправной точкой служат линейный проход и случайная перестановка Фишера-Йетса. После чего автор шаг за шагом выстраивает патологический паттерн, последовательно эксплуатируя устройство памяти: доступ с шагом в кэш-линию убивает переиспользование кэша, шаг в целую страницу ломает аппаратный префетчер и создает конфликтные промахи из-за наборно-ассоциативного кэша, а увеличение дистанции переиспользования выбивает данные из приватных кэшей ядра.
Короче, действительно интересная статья, которая может многому научить по работе с памятью. Несмотря на нарочито комичную цель, статья служит наглядным уроком о работе кэшей, префетчеров, MMU и DRAM
15.07.2026
Похожее
14.08.2026
Игры под Nintendo 64
Автор портировал свой старый JavaScript-демо-шутер Xibalba (2014) на Nintendo 64...
12.08.2026
Какой ты газонокосильщик
The Pudding провели интерактивный эксперимент, в котором больше 30 тысяч человек...
09.08.2026
Кровать на zig
Физик с PhD, с ADHD и аутизмом рассказывает, как купил Chilipad 2.0 - систему во...
04.08.2026
Макбук тачскрин
Статья аж 18-го года, и судя по комитам, проект никак не развивается. Но он все ...