[Differential] [Request, 31 lines] D4362: RFC: [AppletQuickItem] Cache QQmlComponent used for settings QtQuick Controls 1 style
Kai Uwe Broulik
noreply at phabricator.kde.org
Tue Jan 31 10:38:00 UTC 2017
broulik created this revision.
broulik added a reviewer: Plasma.
broulik set the repository for this revision to R242 Plasma Framework (Library).
Restricted Application added projects: Plasma, Frameworks.
Restricted Application added subscribers: Frameworks, plasma-devel.
REVISION SUMMARY
Plasma spends roughly 0.5ms per applet just compiling this component (QQmlComponent creation), so cache it away.
All applets did share the same QQmlEngine here but I don't think this can be trusted, hence store the components in a QHash per engine.
While at it, turn the Item into a QtObject to reduce overhead since we just want the Component.onCompleted to be executed and that's it.
Before: 41 calls (18ms in total)
After: 41 calls (1.9ms in total)
TEST PLAN
Verified that a QtQuick Controls 1 Button still uses the Plasma theme.
The QObject::destroyed I use to remove the component from the hash again is never executed, even on kquitapp plasmashell.
REPOSITORY
R242 Plasma Framework (Library)
REVISION DETAIL
https://phabricator.kde.org/D4362
AFFECTED FILES
src/plasmaquick/appletquickitem.cpp
src/plasmaquick/private/appletquickitem_p.h
EMAIL PREFERENCES
https://phabricator.kde.org/settings/panel/emailpreferences/
To: broulik, #plasma
Cc: plasma-devel, #frameworks, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20170131/d171b244/attachment.html>
More information about the Kde-frameworks-devel
mailing list