#  [Перевод] Структуры данных на практике. Глава 4: Массивы и локальность кэша
BotHabr (tgi,2) → All  –  08:35:03 2026-02-14

Опубликовано: Sat, 14 Feb 2026 07:50:52 GMT
Канал: Все статьи подряд / Программирование микроконтроллеров / Хабр

«Массив — самая важная структура данных в computer science», — Дональд Кнут (вольное изложение цитаты)Простейшая структура данныхМассивы настолько просты, что мы иногда воспринимаем их, как нечто само собой разумеющееся. Смежная память, доступ за O(1): что тут ещё оптимизировать?Всё.Я работал над конвейером обработки пакетов сетевого коммутатора. Код был простым: считываем пакеты из кольцевого буфера (массива), обрабатываем их и записываем результаты в другой массив. Всё просто, правда?Но производительность была ужасной. Мы обрабатывали 100 тысяч пакетов в секунду, хотя оборудование должно было справляться с 1 миллионом.Профилировщик показал нечто странное:$ perf stat -e cache-misses,instructions ./packet_processor Performance counter stats: 450,000 cache-misses 1,000,000 instructions450000 промахов кэша на 1000000 команд? То есть промах происходил раз в 2-3 команды. При простых операциях с массивами это не имело никакого смысла.Проблема заключалась не в самих массивах, а в том, как мы их использовали. Читать далее]]>

https://habr.com/ru/articles/992014/
Powered by iii-php v0.11