Technology

[Перевод] Структуры данных на практике. Глава 14: Обработка строк и эффективность использования кэша

«В Computer Science есть только две сложные вещи: инвалидация кэша и придумывание названий», — Фил Карлтон Разрыв в производительности Наш парсер логов обрабатывал 800 тысяч строк в секунду. Нам требовалось 3 миллиона строк в секунду. От нужного нам показателя мы отставали в 3,75 раза. Задача инстру

H
Habr
29 апреля 2026 г.·1 мин чтения
[Перевод] Структуры данных на практике. Глава 14: Обработка строк и эффективность использования кэша

Image: Habr

«В Computer Science есть только две сложные вещи: инвалидация кэша и придумывание названий», — Фил Карлтон

Разрыв в производительности

Наш парсер логов обрабатывал 800 тысяч строк в секунду. Нам требовалось 3 миллиона строк в секунду. От нужного нам показателя мы отставали в 3,75 раза.

Задача инструмента заключалась в парсинге строк логов в реальном времени, извлечении временных меток, уровней логов и сообщений из миллионов строк в секунду. Обработка миллиона строк логов в текущей реализации требовала 1,25 секунды — слишком долго для анализа в реальном времени.

Профилировщик показывал 85 миллионов промахов кэша. Для обработки строк это казалось слишком большим показателем.

В реализации использовались стандартные строковые функции C — простые, читаемые, но, очевидно, слишком медленные.

Я переписал этот код, добавив обработку строк с учётом кэша. Результаты были такими:

В 4,5 раза быстрее и в 7 раз меньше промахов кэша.

В этой главе мы поговорим о том, как эффективно использовать кэш при обработке строк.

Читать далее

Оригинальная статья

[Перевод] Структуры данных на практике. Глава 14: Обработка строк и эффективность использования кэша

Опубликовано Habr

Читать полную статью