Аарон Сейго (Aaron Seigo), основной разработчик KDE-оболочки Plasma, сообщил о проведении ряда оптимизаций, связанных с уменьшением потребления памяти и ускорением выполнения операций с файлами. В процессе работы Plasma используется большое количество файлов с диска, например, при чтении QML-стилей, использовании плазмоидов или загрузке изображений при отображении визуальных тем.
В рамках проекта libplasma2 Аарон решил реализовать поддержку кэша обращений к файловой системе. Дополнительно были переработаны классы Package с целью экономии памяти, благодаря использованию структур меньшего размера и минимизации дублирования данных за счет организации совместного использования несколькими объектами. Результат оказался впечатляющим: время выполнения 100 тыс. операций копирования и удаления сократилось с 2700мс до 37мс, а 100 тыс. операций копирования, проверки и удаления - с 3900мс до 40мс. К сожалению внесенные изменения основаны на подвергнутому рефакторингу коде классов Package и PackageStructure и не могут быть бэкпортированы в libplasma1.
Похожий кэш файловых запросов был также добавлен в код, связанный с отображением визуальных тем. При этом этот кэш, в отличие от переработки классов Package и PackageStructure, может легко быть бэкпортирован для ветки KDE 4.7. При использования кэша в коде обработки тем скорость проверки наличия 100 тысяч файлов уменьшилась с 6 секунд до 1/4 сек. Ценой кэширования является незначительное повышения потребления памяти (несколько килобайт).