Автор ставит забавный эксперимент: найти самый медленный способ просуммировать массив из 2^26 целых чисел на C++, меняя только порядок доступа к элементам. Он умудряется превзойти по медлительности даже случайный доступ более чем на 30%.
Отправной точкой служат линейный проход и случайная перестановка Фишера-Йетса. После чего автор шаг за шагом выстраивает патологический паттерн, последовательно эксплуатируя устройство памяти: доступ с шагом в кэш-линию убивает переиспользование кэша, шаг в целую страницу ломает аппаратный префетчер и создает конфликтные промахи из-за наборно-ассоциативного кэша, а увеличение дистанции переиспользования выбивает данные из приватных кэшей ядра.
Короче, действительно интересная статья, которая может многому научить по работе с памятью. Несмотря на нарочито комичную цель, статья служит наглядным уроком о работе кэшей, префетчеров, MMU и DRAM
15.07.2026
Похожее
12.09.2026
QCRACK.EXE
Как раз закончил перечитывать книгу "Повелители DOOM" а тут интересная статья пр...
06.09.2026
Офис на заднем дворе
Чувак делится опытом постройки офиса на заднем дворе. Проект обошёлся примерно в...
02.09.2026
Исполняемы файл - это SQLite база
Куда только этот ваш SQLite не запихивали Статья рассказывает о проекте SELF ...
01.09.2026
Теория музыки
Статья объясняет теорию музыки "с нуля", отталкиваясь от физики и арифметики ...