суббота, 16 июля 2022 г.

Luboš Luňák решил проблему с производительностью функций ВПР, СУММЕСЛИ и СЧËТЕСЛИ в LibreOffice Calc

Разработчик из Collabora Luboš Luňák решил наконец проблему с производительностью в LibreOffice Calc функций ВПР, СУММЕСЛИ и СЧËТЕСЛИ при работе с бльшими обьемами данных. О чём и написал в своём блоге минизаметку.

 

Данные выше (слева время работы функций до патчей, справа после патчей) - это какие-то пользовательские файлы от компании SuSe. Сами видите, насколько стало всё быстрее.

Фокус был в том, что если данные для функции ВПР отсортированы, то LibreOffice Calc применял для поиска в данных бинарный поиск, а если данные не отсортированы, то линейный, когда проверяется КАЖДЫЙ элемент. Представьте, если у вас десятки тысяч элементов надо перебрать. Решением стало копирование не отсортированных данных в память, их сортировка, кэшировние, а затем приминение к результату всё того же бинарного поиска. На словах всё вроде просто, а решение по факту заняло очень много времени.

Это улучшение будет доступно уже в LibreOffice Calc 7.4, который выйдет в августе 2022 года. Спасибо Luboš Luňák за эту работу.