[Перевод] Структуры данных на практике. Глава 14: Обработка строк и эффективность использования кэша
«В Computer Science есть только две сложные вещи: инвалидация кэша и придумывание названий», — Фил Карлтон Разрыв в производительности Наш парсер логов обрабатывал 800 тысяч строк в секунду. Нам требовалось 3 миллиона строк в секунду. От нужного нам показателя мы отставали в 3,75 раза. Задача инстру
![[Перевод] Структуры данных на практике. Глава 14: Обработка строк и эффективность использования кэша](/uploads/4cbd7e97-1ee4-4265-b42f-0235ce769283.jpg)
Image: Habr
«В Computer Science есть только две сложные вещи: инвалидация кэша и придумывание названий», — Фил Карлтон
Разрыв в производительности
Наш парсер логов обрабатывал 800 тысяч строк в секунду. Нам требовалось 3 миллиона строк в секунду. От нужного нам показателя мы отставали в 3,75 раза.
Задача инструмента заключалась в парсинге строк логов в реальном времени, извлечении временных меток, уровней логов и сообщений из миллионов строк в секунду. Обработка миллиона строк логов в текущей реализации требовала 1,25 секунды — слишком долго для анализа в реальном времени.
Профилировщик показывал 85 миллионов промахов кэша. Для обработки строк это казалось слишком большим показателем.
В реализации использовались стандартные строковые функции C — простые, читаемые, но, очевидно, слишком медленные.
Я переписал этот код, добавив обработку строк с учётом кэша. Результаты были такими:
В 4,5 раза быстрее и в 7 раз меньше промахов кэша.
В этой главе мы поговорим о том, как эффективно использовать кэш при обработке строк.
Читать далееОригинальная статья
[Перевод] Структуры данных на практике. Глава 14: Обработка строк и эффективность использования кэша
Опубликовано Habr