davidedmundson created this revision. davidedmundson added a reviewer: Plasma. Restricted Application added a project: Plasma. Restricted Application added a subscriber: plasma-devel.
REVISION SUMMARY Plasma::PluginLoader::self()->listAppletInfo(QString() is expensive, it loads and parses every .desktop file individually. Twice. The main offender is the defaultApplets property, which gets requested multiple times from JS space, and we reparse the files every time. Moving the work to the constructor solves that. This saves loading (on my machine) ~900 desktop files. TEST PLAN - wiped config, defaults appeared - DBus activated still worked - restore works as before Running "time plasmashell" shows: BEFORE: plasmashell 4.01s user 0.46s system 87% cpu 5.116 total plasmashell 4.01s user 0.54s system 74% cpu 6.124 total AFTER: plasmashell 3.17s user 0.42s system 68% cpu 5.259 total plasmashell 3.18s user 0.46s system 81% cpu 4.475 total REPOSITORY rPLASMAWORKSPACE Plasma Workspace BRANCH master REVISION DETAIL https://phabricator.kde.org/D2756 AFFECTED FILES applets/systemtray/systemtray.cpp applets/systemtray/systemtray.h EMAIL PREFERENCES https://phabricator.kde.org/settings/panel/emailpreferences/ To: davidedmundson, #plasma Cc: plasma-devel, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas