[frameworks-plasma] [Bug 433907] plasmashell works slow when displaying textual list of grouped tasks for big group

2021-04-25 Thread bugzilla_noreply
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

2021-04-25 Thread bugzilla_noreply
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

2021-04-10 Thread Patrick Silva
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

2021-04-07 Thread Nate Graham
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

2021-04-07 Thread Nate Graham
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

2021-04-06 Thread Nate Graham
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

2021-04-06 Thread Nate Graham
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

2021-03-31 Thread Bug Janitor Service
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

2021-03-26 Thread bugzilla_noreply
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

2021-03-26 Thread bugzilla_noreply
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

2021-03-23 Thread bugzilla_noreply
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

2021-03-23 Thread David Edmundson
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

2021-03-04 Thread bugzilla_noreply
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

2021-03-03 Thread Nate Graham
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

2021-03-03 Thread bugzilla_noreply
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