Разработчик из Collabora Luboš Luňák решил наконец проблему с производительностью в LibreOffice Calc функций ВПР, СУММЕСЛИ и СЧËТЕСЛИ при работе с бльшими обьемами данных. О чём и написал в своём блоге минизаметку.
Данные выше (слева время работы функций до патчей, справа после патчей) - это какие-то пользовательские файлы от компании SuSe. Сами видите, насколько стало всё быстрее.
Фокус был в том, что если данные для функции ВПР отсортированы, то LibreOffice Calc применял для поиска в данных бинарный поиск, а если данные не отсортированы, то линейный, когда проверяется КАЖДЫЙ элемент. Представьте, если у вас десятки тысяч элементов надо перебрать. Решением стало копирование не отсортированных данных в память, их сортировка, кэшировние, а затем приминение к результату всё того же бинарного поиска. На словах всё вроде просто, а решение по факту заняло очень много времени.
Это улучшение будет доступно уже в LibreOffice Calc 7.4, который выйдет в августе 2022 года. Спасибо Luboš Luňák за эту работу.