tl;dr Раньше папка Windows открывалась ~8 секунд, теперь практически мгновенно.
Занялся улучшением скорости работы.
Запустил профайлер и обнаружил, что при открытии новой директории over 80% времени съедает функция DispatchPendingEvents. Насколько я понял, она заставляет обработать поступившие сообщения, проблема только в том, что, выполняясь на каждой итерации цикла, она начинает отжирать столько времени, что без нее юзер давно получил бы результат; другими словами, если ее удалить, то все начинает работать настолько быстро, что за время загрузки директории почти невозможно успеть что-либо нажать, обрабатывать нечего и она практически не нужна.
Тем не менее, с заделом на большие каталоги, сделано так, что она вызывается каждые 1000 обработанных файлов и/или директорий.
tl;dr Раньше папка Windows открывалась ~8 секунд, теперь практически мгновенно.
Занялся улучшением скорости работы. Запустил профайлер и обнаружил, что при открытии новой директории over 80% времени съедает функция DispatchPendingEvents. Насколько я понял, она заставляет обработать поступившие сообщения, проблема только в том, что, выполняясь на каждой итерации цикла, она начинает отжирать столько времени, что без нее юзер давно получил бы результат; другими словами, если ее удалить, то все начинает работать настолько быстро, что за время загрузки директории почти невозможно успеть что-либо нажать, обрабатывать нечего и она практически не нужна.
Тем не менее, с заделом на большие каталоги, сделано так, что она вызывается каждые 1000 обработанных файлов и/или директорий.