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&action=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.

Reply via email to