[frameworks-plasma] [Bug 433907] plasmashell works slow when displaying textual list of grouped tasks for big group
https://bugs.kde.org/show_bug.cgi?id=433907 --- Comment #13 from bugs-...@quitesimple.org --- *** Bug 429502 has been marked as a duplicate of this bug. *** -- You are receiving this mail because: You are watching all bug changes.
[frameworks-plasma] [Bug 433907] plasmashell works slow when displaying textual list of grouped tasks for big group
https://bugs.kde.org/show_bug.cgi?id=433907 bugs-...@quitesimple.org changed: What|Removed |Added Resolution|FIXED |--- Status|RESOLVED|REOPENED --- Comment #12 from bugs-...@quitesimple.org --- I can confirm this is not solved and I had to apply my hack in https://bugs.kde.org/show_bug.cgi?id=429502 again to get the smooth experience back. -- You are receiving this mail because: You are watching all bug changes.
[frameworks-plasma] [Bug 433907] plasmashell works slow when displaying textual list of grouped tasks for big group
https://bugs.kde.org/show_bug.cgi?id=433907 Patrick Silva changed: What|Removed |Added CC||bugsefor...@gmx.com --- Comment #11 from Patrick Silva --- humm, this issue is still reproducible with 50 instances of Konsole on neon unstable. Mainly scrolling through the list of grouped apps is slow. Both icon-only and normal task managers are affected. Operating System: KDE neon Unstable Edition KDE Plasma Version: 5.21.80 KDE Frameworks Version: 5.81.0 Qt Version: 5.15.2 Graphics Platform: X11 -- You are receiving this mail because: You are watching all bug changes.
[frameworks-plasma] [Bug 433907] plasmashell works slow when displaying textual list of grouped tasks for big group
https://bugs.kde.org/show_bug.cgi?id=433907 Nate Graham changed: What|Removed |Added CC||med.medin.2...@gmail.com --- Comment #10 from Nate Graham --- *** Bug 430317 has been marked as a duplicate of this bug. *** -- You are receiving this mail because: You are watching all bug changes.
[frameworks-plasma] [Bug 433907] plasmashell works slow when displaying textual list of grouped tasks for big group
https://bugs.kde.org/show_bug.cgi?id=433907 Nate Graham changed: What|Removed |Added CC||bugs-...@quitesimple.org --- Comment #9 from Nate Graham --- *** Bug 429502 has been marked as a duplicate of this bug. *** -- You are receiving this mail because: You are watching all bug changes.
[frameworks-plasma] [Bug 433907] plasmashell works slow when displaying textual list of grouped tasks for big group
https://bugs.kde.org/show_bug.cgi?id=433907 Nate Graham changed: What|Removed |Added Version Fixed In||5.22 -- You are receiving this mail because: You are watching all bug changes.
[frameworks-plasma] [Bug 433907] plasmashell works slow when displaying textual list of grouped tasks for big group
https://bugs.kde.org/show_bug.cgi?id=433907 Nate Graham changed: What|Removed |Added Latest Commit||https://invent.kde.org/plas ||ma/plasma-desktop/commit/ea ||84e5c1600dde7207a85dc228eae ||6cc05d4b319 Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #8 from Nate Graham --- Git commit ea84e5c1600dde7207a85dc228eae6cc05d4b319 by Nate Graham, on behalf of Aleksei Nikiforov. Committed on 06/04/2021 at 16:32. Pushed by ngraham into branch 'master'. Replace Repeater with ListView for task group list Unlike Repeater ListView loads only visible items. This behaviour leads to huge performance improvement. ListView also requires to set width and height explicitly. One remaining issue is time of displaying tooltips. Tooltips are displayed only for short amount of time. With Repeater this timer starts after tooltip is displayed. With ListView it looks like timer starts while ListView is preparing to display, which may lead to situation when timer fires before tooltip is displayed, thus when tooltip is ready, it is briefly displayed and immediately hidden again. M +10 -14 applets/taskmanager/package/contents/ui/ToolTipDelegate.qml https://invent.kde.org/plasma/plasma-desktop/commit/ea84e5c1600dde7207a85dc228eae6cc05d4b319 -- You are receiving this mail because: You are watching all bug changes.
[frameworks-plasma] [Bug 433907] plasmashell works slow when displaying textual list of grouped tasks for big group
https://bugs.kde.org/show_bug.cgi?id=433907 Bug Janitor Service changed: What|Removed |Added Status|REPORTED|ASSIGNED Ever confirmed|0 |1 --- Comment #7 from Bug Janitor Service --- A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/402 -- You are receiving this mail because: You are watching all bug changes.
[frameworks-plasma] [Bug 433907] plasmashell works slow when displaying textual list of grouped tasks for big group
https://bugs.kde.org/show_bug.cgi?id=433907 --- Comment #6 from darktemp...@basealt.ru --- Created attachment 137078 --> https://bugs.kde.org/attachment.cgi?id=137078=edit imagepath.log.xz Patch attached earlier requires boost and private headers of qtbase and qtdeclarative. Log file generated after creating 100 konsole windows and 1 qterminal window, and running patched plasmashell with: LC_ALL=C DEBUGIMAGEPATH=1 DEBUGOBJECTS=1 plasmashell -n --replace After that I expanded konsole group once and replaced plasmashell with instance without debug settings. It looks like there are thousands instances of FrameSvg and SvgPrivate objects exist at same time. To be more precise, this time I got 8541 simultaneous instances of FrameSvg and 10323 instances of SvgPrivate. Most qml stack traces looked like one of following 3 variants: 1) expression for leftPadding (file:///usr/lib64/qt5/qml/org/kde/plasma/components.3/ToolButton.qml:0) expression for implicitWidth (file:///usr/lib64/qt5/qml/org/kde/plasma/components.3/ToolButton.qml:0) onContainsMouseChanged (file:///usr/share/kf5/plasma/plasmoids/org.kde.plasma.taskmanager/contents/ui/Task.qml:350) 2) expression for visible (file:///usr/lib64/qt5/qml/org/kde/plasma/components.3/private/ButtonContent.qml:0) expression for horizontalAlignment (file:///usr/lib64/qt5/qml/org/kde/plasma/components.3/private/ButtonContent.qml:58) onContainsMouseChanged (file:///usr/share/kf5/plasma/plasmoids/org.kde.plasma.taskmanager/contents/ui/Task.qml:350) 3) onContainsMouseChanged (file:///usr/share/kf5/plasma/plasmoids/org.kde.plasma.taskmanager/contents/ui/Task.qml:350) I tried using qt_v4StackTraceForEngine for obtaining qml stack trace, but it always crashed for me since currentStackFrame is NULL: https://code.qt.io/cgit/qt/qtdeclarative.git/tree/src/qml/jsruntime/qv4engine.cpp?h=v5.15.2#n838 It looks like excessive amount of Plasma::Svg and Plasma::FrameSvg instances is created and destroyed each time this scenario happens. It went from 119 instances to 4318 instances of Plasma::FrameSvg and from 176 instances to 5276 instances of SvgPrivate::SvgPrivate when showing grouped tasks, and to 8541 instances of Plasma::FrameSvg and back to 259 instances (for Plasma::Svg it went -> 10323 -> 425 instances) after I tried to scroll it using mouse wheel. I think this has to be optimized somehow. -- You are receiving this mail because: You are watching all bug changes.
[frameworks-plasma] [Bug 433907] plasmashell works slow when displaying textual list of grouped tasks for big group
https://bugs.kde.org/show_bug.cgi?id=433907 --- Comment #5 from darktemp...@basealt.ru --- Created attachment 137075 --> https://bugs.kde.org/attachment.cgi?id=137075=edit debug-v1.patch Implemented debug-only changes. -- You are receiving this mail because: You are watching all bug changes.
[frameworks-plasma] [Bug 433907] plasmashell works slow when displaying textual list of grouped tasks for big group
https://bugs.kde.org/show_bug.cgi?id=433907 --- Comment #4 from darktemp...@basealt.ru --- I've made following debug changes and rebuilt plasma-desktop locally: diff --git a/plasma-desktop/applets/taskmanager/package/contents/ui/GroupDialog.qml b/plasma-desktop/applets/taskmanager/package/contents/ui/GroupDialog.qml index 802511a08..7706bfaac 100644 --- a/plasma-desktop/applets/taskmanager/package/contents/ui/GroupDialog.qml +++ b/plasma-desktop/applets/taskmanager/package/contents/ui/GroupDialog.qml @@ -251,6 +251,9 @@ PlasmaCore.Dialog { } function updateSize() { +console.count("updateSize() called"); +console.log("updateSize called. visible is ", visible, ", visualParent is ", visualParent); + if (!visible) { return; } I also enabled logging: $ cat .config/QtProject/qtlogging.ini [Rules] *.debug=true qt.*.debug=false and reproduced issue. I've opened grouped task list twice. Here's resulting part of log: trying to show an empty dialog trying to show an empty dialog updateSize() called: 1 qml: updateSize called. visible is true , visualParent is Task_QMLTYPE_395(0x55e846c480e0) trying to show an empty dialog updateSize() called: 2 qml: updateSize called. visible is true , visualParent is Task_QMLTYPE_395(0x55e846c480e0) It doesn't look like updateSize is called too often. It's called only once each time grouped tasks list is expanded. -- You are receiving this mail because: You are watching all bug changes.
[frameworks-plasma] [Bug 433907] plasmashell works slow when displaying textual list of grouped tasks for big group
https://bugs.kde.org/show_bug.cgi?id=433907 David Edmundson changed: What|Removed |Added CC||k...@davidedmundson.co.uk --- Comment #3 from David Edmundson --- In plasma-desktop/applets/taskmanager/package/contents/ui/GroupDialog.qml This many lookups is a sign of something wrong in the calling code rather than the SVG code itself. It's not written very declaratively, which tends to backfire My working theory - we trigger an updateSize on animationChanged, updating the size triggers the Flow move animation and that gets exponentially higher the more items you have, as you have more things starting a move. You'll get one move transition per item. Frankly I can't see the animation anyway. -- You are receiving this mail because: You are watching all bug changes.
[frameworks-plasma] [Bug 433907] plasmashell works slow when displaying textual list of grouped tasks for big group
https://bugs.kde.org/show_bug.cgi?id=433907 --- Comment #2 from darktemp...@basealt.ru --- Since files are too large to be attached here, I'm posting links: http://ftp.altlinux.org/pub/people/darktemplar/kdebug-433907/callgrind.out.4715 http://ftp.altlinux.org/pub/people/darktemplar/kdebug-433907/plasmashell.qml.trace.qzt First file is an output of callgrind for reproduction test. Second file is a qml trace of another issue reproduction attempt where it's reproduced after second 140 three times. -- You are receiving this mail because: You are watching all bug changes.
[frameworks-plasma] [Bug 433907] plasmashell works slow when displaying textual list of grouped tasks for big group
https://bugs.kde.org/show_bug.cgi?id=433907 Nate Graham changed: What|Removed |Added CC||ahiems...@heimr.nl, ||n...@kde.org -- You are receiving this mail because: You are watching all bug changes.
[frameworks-plasma] [Bug 433907] plasmashell works slow when displaying textual list of grouped tasks for big group
https://bugs.kde.org/show_bug.cgi?id=433907 --- Comment #1 from darktemp...@basealt.ru --- I've found out after running callgrind, that function Plasma::SvgRectsCache::loadImageFromCache is called over 5 times when textual list for a group of 50 windows is displayed. I've logged every filename passed to this function after start of plasmashell, creating group of 50 windows and displaying it (once or just few times). One of images was loaded over 46000 times. $ cat plasma.log | awk '{ print $12 }' | sort | uniq -c | sort -h -r 46277 /usr/share/kf5/plasma/desktoptheme/default/widgets/button.svgz, 3150 /usr/share/kf5/plasma/desktoptheme/default/icons/media.svgz, 1052 /usr/share/kf5/plasma/desktoptheme/default/widgets/viewitem.svgz, 1052 /usr/share/kf5/plasma/desktoptheme/default/icons/window.svgz, 1051 /usr/share/icons/breeze/actions/32/window-close.svg, 1050 /usr/share/icons/breeze/actions/32/media-skip-forward.svg, 1050 /usr/share/icons/breeze/actions/32/media-skip-backward.svg, 1050 /usr/share/icons/breeze/actions/32/media-playback-start.svg, 266 /usr/share/kf5/plasma/desktoptheme/default/widgets/tasks.svgz, 264 /usr/share/icons/breeze/apps/32/utilities-terminal.svg, 57 /usr/share/icons/breeze/actions/22/media-skip-forward.svg, 57 /usr/share/icons/breeze/actions/22/media-skip-backward.svg, 57 /usr/share/icons/breeze/actions/22/media-playback-start.svg, 57 /usr/share/icons/breeze/actions/16/window-close.svg, 25 /usr/share/kf5/plasma/desktoptheme/default/widgets/scrollbar.svgz, 12 /usr/share/icons/breeze/status/22/update-none.svg, 11 /usr/share/kf5/plasma/desktoptheme/default/icons/system.svgz, 9 /usr/share/kf5/plasma/desktoptheme/default/dialogs/background.svgz, 6 /usr/share/kf5/plasma/desktoptheme/default/icons/korgac.svgz, 5 /usr/share/kf5/plasma/desktoptheme/default/widgets/scrollwidget.svgz, 4 /usr/share/kf5/plasma/desktoptheme/default/widgets/tooltip.svgz, 4 /usr/share/kf5/plasma/desktoptheme/default/widgets/tabbar.svgz, 4 /usr/share/icons/breeze/actions/16/view-history.svg, 3 /usr/share/kf5/plasma/desktoptheme/default/widgets/lineedit.svgz, 3 /usr/share/kf5/plasma/desktoptheme/default/widgets/busywidget.svgz, 3 /usr/share/kf5/plasma/desktoptheme/default/opaque/widgets/tooltip.svgz, 2 /usr/share/kf5/plasma/desktoptheme/default/widgets/plasmoidheading.svgz, 2 /usr/share/kf5/plasma/desktoptheme/default/widgets/panel-background.svgz, 2 /usr/share/kf5/plasma/desktoptheme/default/widgets/line.svgz, 2 /usr/share/kf5/plasma/desktoptheme/default/widgets/arrows.svgz, 2 /usr/share/kf5/plasma/desktoptheme/default/icons/user.svgz, 2 /usr/share/kf5/plasma/desktoptheme/default/icons/preferences.svgz, 2 /usr/share/icons/breeze/preferences/32/preferences-desktop.svg, 2 /usr/share/icons/breeze/categories/32/applications-system.svg, 2 /usr/share/icons/breeze/categories/32/applications-office.svg, 2 /usr/share/icons/breeze/categories/32/applications-network.svg, 2 /usr/share/icons/breeze/categories/32/applications-multimedia.svg, 2 /usr/share/icons/breeze/categories/32/applications-graphics.svg, 2 /usr/share/icons/breeze/categories/32/applications-development.svg, 2 /usr/share/icons/breeze/apps/48/utilities-terminal.svg, 2 /usr/share/icons/breeze/apps/48/telepathy-kde.svg, 2 /usr/share/icons/breeze/apps/32/preferences-system.svg, 2 /usr/share/icons/breeze/apps/32/hwinfo.svg, 2 /usr/share/icons/breeze/actions/16/system-log-out.svg, 1 /usr/share/kf5/plasma/desktoptheme/default/widgets/pager.svgz, 1 /usr/share/kf5/plasma/desktoptheme/default/widgets/listitem.svgz, 1 /usr/share/kf5/plasma/desktoptheme/default/widgets/frame.svgz, 1 /usr/share/kf5/plasma/desktoptheme/default/widgets/configuration-icons.svgz, 1 /usr/share/kf5/plasma/desktoptheme/default/widgets/background.svgz, 1 /usr/share/kf5/plasma/desktoptheme/default/widgets/action-overlays.svgz, 1 /usr/share/kf5/plasma/desktoptheme/default/icons/start.svgz, 1 /usr/share/kf5/plasma/desktoptheme/default/icons/printer.svgz, 1 /usr/share/kf5/plasma/desktoptheme/default/icons/notification.svgz, 1 /usr/share/kf5/plasma/desktoptheme/default/icons/network.svgz, 1 /usr/share/kf5/plasma/desktoptheme/default/icons/list.svgz, 1 /usr/share/kf5/plasma/desktoptheme/default/icons/klipper.svgz, 1 /usr/share/kf5/plasma/desktoptheme/default/icons/kdeconnect.svgz, 1 /usr/share/kf5/plasma/desktoptheme/default/icons/input.svgz, 1 /usr/share/kf5/plasma/desktoptheme/default/icons/go.svgz, 1 /usr/share/kf5/plasma/desktoptheme/default/icons/edit.svgz, 1 /usr/share/kf5/plasma/desktoptheme/default/icons/device.svgz, 1 /usr/share/kf5/plasma/desktoptheme/default/icons/configure.svgz, 1 /usr/share/kf5/plasma/desktoptheme/default/icons/battery.svgz, 1