mart created this revision. mart added a reviewer: Plasma. Restricted Application added projects: Plasma, Frameworks. Restricted Application added subscribers: Frameworks, plasma-devel. mart requested review of this revision.
REVISION SUMMARY preload popups of some applets after init in the background based on a value of X-Plasma-PreloadWeight in the desktop file if present, otherwise some default values based on the applet type (Provides) Save the weight in the config, if an applet is never opened, slowly decrease the weight, when it reaches 0 don't preload it next start, increase every time it gets opened, so at the moment it's quite aggressive about preloading, in order to not do it a lot of plasma startups without touching the applet are needed Applet with a very big weigth will be preloaded immediately, therefore having an impact on the time it will take to have a panel visible and usable, while lesser weigths will preload after a random number of seconds between 2 and 10, so will load in the background after everything is started TEST PLAN Plasma starts up correctly, applets load correctly and can be added correctly both those expanded or collapsed. plasmashell appears correctly usable without too big hiccups even while it's loading things in the background some numbers: without preloading, plasma takes around 64 mb of memory after startup when preloading everything about 94, so it's a cost of about 30 mb which is not negligible. don't have precise timing, but if everything gets preloaded immediately, the time to get an usable desktop appears to be at least doubled, while the delayed preloading (except just a couple of applets) doesn't seem to have a big impact on the time needed to get an usable desktop REPOSITORY R242 Plasma Framework (Library) BRANCH mart/preload REVISION DETAIL https://phabricator.kde.org/D10512 AFFECTED FILES src/plasma/data/servicetypes/plasma-applet.desktop src/plasmaquick/appletquickitem.cpp src/plasmaquick/private/appletquickitem_p.h To: mart, #plasma Cc: plasma-devel, #frameworks, michaelh, ZrenBot, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart