roberts created this revision.
roberts added reviewers: mart, Plasma.
roberts set the repository for this revision to rPLASMAWORKSPACE Plasma 
Workspace.
roberts added a project: Plasma.
Restricted Application added a subscriber: plasma-devel.

REVISION SUMMARY
  Changes triggered by investigation into a long-running high CPU usage bug 
with system tray animations. The systray itself had icon name to icon 
resolution code, which was being triggered (twice) for every icon, every time 
any icon in the systray was updated. This code was spinning up a KIconLoader on 
each of these instances, and throwing it directly away. Each one triggered a 
large quantity of memory allocations and disk scans.
  
  This patch moves the extra bit of "appName" logic from the native part of the 
system tray to the statusnotifieritem datasource, which already had a stored 
'customIconLoader' to handle icon theme paths, and removes the special lookup 
from the sytemtray applet completely. It also prefers icons provided by the 
dataengine to doing another lookup (contentious?). This removes all the extra 
CPU usage outside of the QML scene graph and graphics drivers locally.
  
  This is very much a looking for feedback item - there are things about the 
icon loading paths I almost certainly haven't appreciated yet, and perhaps 
preferring loading by icon name in the applet has a another purpose.
  
  BUG: 356479

TEST PLAN
  Have tested locally with kgpg and steam, the two apps I have that trigger the 
old code path. In neither case, however, did the appName logic produce a 
different result to the code with just the icon search path in 
statusnotifieritem.

REPOSITORY
  rPLASMAWORKSPACE Plasma Workspace

REVISION DETAIL
  https://phabricator.kde.org/D2986

AFFECTED FILES
  applets/systemtray/package/contents/ui/items/StatusNotifierItem.qml
  applets/systemtray/systemtray.cpp
  applets/systemtray/systemtray.h
  dataengines/statusnotifieritem/statusnotifieritemsource.cpp

EMAIL PREFERENCES
  https://phabricator.kde.org/settings/panel/emailpreferences/

To: roberts, mart, #plasma
Cc: plasma-devel, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas

Reply via email to