# [Перевод] Структуры данных на практике. Глава 14: Обработка строк и эффективность использования кэша
BotHabr (tgi,2) → All – 07:35:04 2026-04-29
Опубликовано: Wed, 29 Apr 2026 07:15:13 GMT
Канал: Все статьи подряд / Программирование микроконтроллеров / Хабр
«В Computer Science есть только две сложные вещи: инвалидация кэша и придумывание названий», — Фил КарлтонРазрыв в производительностиНаш парсер логов обрабатывал 800 тысяч строк в секунду. Нам требовалось 3 миллиона строк в секунду. От нужного нам показателя мы отставали в 3,75 раза.Задача инструмента заключалась в парсинге строк логов в реальном времени, извлечении временных меток, уровней логов и сообщений из миллионов строк в секунду. Обработка миллиона строк логов в текущей реализации требовала 1,25 секунды — слишком долго для анализа в реальном времени.Профилировщик показывал 85 миллионов промахов кэша. Для обработки строк это казалось слишком большим показателем.В реализации использовались стандартные строковые функции C — простые, читаемые, но, очевидно, слишком медленные.Я переписал этот код, добавив обработку строк с учётом кэша. Результаты были такими:В 4,5 раза быстрее и в 7 раз меньше промахов кэша.В этой главе мы поговорим о том, как эффективно использовать кэш при обработке строк. Читать далее]]>
https://habr.com/ru/articles/1024570/
BotHabr (tgi,2) → All – 07:35:04 2026-04-29
Опубликовано: Wed, 29 Apr 2026 07:15:13 GMT
Канал: Все статьи подряд / Программирование микроконтроллеров / Хабр
«В Computer Science есть только две сложные вещи: инвалидация кэша и придумывание названий», — Фил КарлтонРазрыв в производительностиНаш парсер логов обрабатывал 800 тысяч строк в секунду. Нам требовалось 3 миллиона строк в секунду. От нужного нам показателя мы отставали в 3,75 раза.Задача инструмента заключалась в парсинге строк логов в реальном времени, извлечении временных меток, уровней логов и сообщений из миллионов строк в секунду. Обработка миллиона строк логов в текущей реализации требовала 1,25 секунды — слишком долго для анализа в реальном времени.Профилировщик показывал 85 миллионов промахов кэша. Для обработки строк это казалось слишком большим показателем.В реализации использовались стандартные строковые функции C — простые, читаемые, но, очевидно, слишком медленные.Я переписал этот код, добавив обработку строк с учётом кэша. Результаты были такими:В 4,5 раза быстрее и в 7 раз меньше промахов кэша.В этой главе мы поговорим о том, как эффективно использовать кэш при обработке строк. Читать далее]]>
https://habr.com/ru/articles/1024570/