Приятно, когда для ускорения работы программы есть возможность просто взять железо помощнее. Еще приятнее добиться ускорения, переписав алгоритм более эффективным образом или задействовав более подходящие структуры данных. Сейчас есть огромное количество статей про вертикальное и горизонтальное масштабирование, про техники микрооптимизации, а такие вопросы как алгоритмы и структуры данных освещаются редко и в основном на синтетических примерах, имеющих мало отношения к практике. Может показаться, что современному разработчику эти знания не нужны — достаточно взять подходящую библиотеку или перейти на более мощный фреймворк.
В докладе я на конкретных примерах покажу, как с помощью более оптимальных структур данных я ускорял работу библиотеки с открытым исходным кодом, используемой тысячами разработчиков по всему миру для работы с файлами Excel. Поговорим об оценке сложности алгоритмов, а также о том, зачем разработчику стоит участвовать в open-source проектах.