Bug 155678 - Plasma Dashboard initialization is slow.
Summary: Plasma Dashboard initialization is slow.
Status: RESOLVED NOT A BUG
Alias: None
Product: plasma4
Classification: Plasma
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
: 162171 172418 (view as bug list)
Depends on:
Blocks:
 
Reported: 2008-01-13 19:50 UTC by Joe Kowalski
Modified: 2009-02-02 07:01 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Opreport dump of 1 initialization of the dashboard. (109.36 KB, text/plain)
2008-01-17 03:36 UTC, Joe Kowalski
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Joe Kowalski 2008-01-13 19:50:04 UTC
Version:            (using KDE Devel)
Installed from:    Compiled sources
Compiler:          GCC 4.1.2 
OS:                Linux

It takes about ~3 seconds (by my super accurate accurate "mississippi" counting timer) on my machine (Athlon x2 3800, Geforce 6600) for the dashboard view of the plasma widgets to appear. While a nifty feature this is too slow for the dashboard view to be really usable. Less than 1/2 a second would be ideal. Ksysguard reports plamsa cpu usage spiking up to ~30-40% in the time prior to the dashboard's appearance, although about 1/2 the time this is more like 10-20%, but even then the dashboard takes a couple of seconds to appear. There doesn't seem to be be any correlation with the number of applets present either. With file icons enabled, it takes the same time for the dashboard to appear.

SVN Built Kdelibs & Base from 2007-01-10.
Nvidia Driver version: 169.07

Plasma-appletsrc:
[ContainmentGlobals][plasma_containment_desktop][DesktopIcons]
alignToGrid=true
showIcons=false

[Containments][1]
alignToGrid=true
backgroundmode=0
formfactor=0
geometry=0,0,1680,1050
location=0
locked=false
plugin=desktop
screen=0
selected=
showIcons=true
wallpaper=/usr/kde/svn/share/wallpapers/Colorado_Farm/contents/images/1600x1200.jpg
wallpapercolor=48,47,47
wallpaperposition=2

[Containments][1][Applets][35]
geometry=1357.94865141874,657.948651418737,303.102697162526,303.102697162526
locked=false
plugin=clock

[Containments][1][Applets][35][Configuration]
showSecondHand=false
showTimeString=false

[Containments][1][Applets][40]
geometry=1412,130,256,256
locked=false
plugin=plasma_applet_notes

[Containments][1][Applets][40][Configuration]
autoSave=Welcome to Notes Plasmoid! Type your notes here...
font=Bitstream Vera Sans,10,-1,5,50,0,0,0,0,0
size=256
textcolor=invalid

[Containments][1][Applets][41]
geometry=1430,417,232,240
locked=false
plugin=fifteenPuzzle

[Containments][2]
backgroundmode=0
formfactor=0
geometry=1680,0,1024,768
location=0
locked=false
plugin=desktop
screen=1
selected=
wallpaper=/usr/kde/svn/share/wallpapers/Fields_of_Peace/contents/images/1024x768.jpg
wallpapercolor=48,47,47
wallpaperposition=2

[Containments][3]
formfactor=2
geometry=0,994,1680,56
location=4
locked=false
plugin=panel
screen=0
transform=1,0,0,0,1,0,0,-1056,1

[Containments][3][Applets][34]
geometry=1279,8,40,48
locked=false
plugin=icon

[Containments][3][Applets][34][Configuration]
Url=file:///home/joe/.local/share/applications/kde4/konsole.desktop

[Containments][3][Applets][4]
geometry=0,8,48,48
locked=false
plugin=launcher

[Containments][3][Applets][4][Configuration]
SwitchTabsOnHover=false
VisibleItemsCount=15

[Containments][3][Applets][5]
geometry=52,8,1223,48
locked=false
plugin=tasks

[Containments][3][Applets][5][Configuration]
showTooltip=true

[Containments][3][Applets][6]
geometry=1323,8,121,48
locked=false
plugin=pager

[Containments][3][Applets][7]
geometry=1448,8,56,48
locked=false
plugin=systemtray

[Containments][3][Applets][8]
geometry=1508,8,48,48
locked=false
plugin=notifier

[Containments][3][Applets][9]
geometry=1560,8,120,48
locked=false
plugin=digital-clock

[Containments][3][Applets][9][Configuration]
plainClock=true
plainClockColor=255,255,255
plainClockFont=Nimbus Sans L,12,-1,5,75,0,0,0,0,0
plainClockFontBold=true
plainClockFontItalic=false
showDate=true
showDay=true
showYear=false
timezone=Local
twentyFour=false

[General]
locked=false

Plasmarc:
[KPropertiesDialog]
Height 1050=502
Width 1680=473

[Theme]
name=default
Comment 1 Aaron J. Seigo 2008-01-13 20:16:49 UTC
"make it faster" ... without concrete definition of what is making it slower, these are not useful bug reports. everything could be made faster and therefore better. =/ i appreciate how thoroughly you did research this, though, checking for variables such as icons on or not, number of applets, etc.

the dashboard layer itself is constructed in a delayed fashion so as not to impede startup or use memory unnecessarily. it's created on the first access of it. the 1050x1680 resolution you are running at is probably why it takes as long as it does to create as that's how big a widget must be created and then pushed to screen.

i'm running 1440x900 here and it does pop-up the second time and on in about .3s or maybe even less. the first time it takes a couple of seconds, yes.

i'm not comfortable, however, with creating it on startup due the slowness it would induce and additional memory it would take even if never used (particularly on multi-screen systems)
Comment 2 FiNeX 2008-01-13 22:49:13 UTC
Joe: have you make this test with debug symbol or did you compile it with some optimization flag?
Comment 3 Joe Kowalski 2008-01-14 00:33:12 UTC
Aaron: I have no problem with having a slow first initialization, but for some reason, I don't get any speed up on subsequant initializations. I confirmed this a little bit more scientifically by enabling the second hand on the analogue clock. When initializing the dashboard, the second hand freezes, and when the dashboard comes up again, the second hand jumps about 3 seconds. 

As for this being related to resolution, I did see a speedup when lowering my display resolution to 1400x1050 to about 2 seconds per initialization, but still no dice on a fast second initialization. Perhaps there is a caching problem on my configuration? Neither plasma's rss or vss changes appreciably between startup and after 1st dashboard initialization. 

I'm working on getting oprofile setup on my system so I can see a bit better where things are getting hung up. 

FineX: My build isn't debug enabled, and my cflags are pretty standard: -march=athlon64 -Os.
Comment 4 Aaron J. Seigo 2008-01-14 03:38:36 UTC
hm.. i'm running kde4 on an athlon 64 here as well (3200+ iirc) and at 1450x900 res it's pretty much instant. sometimes on first show it takes up to 2 seconds, but sometimes it's also pretty instant on first show.

if you do get oprofile output, that would be perfect. interesting to see what is happening there. thanks =)
Comment 5 FiNeX 2008-01-14 10:28:35 UTC
(Off Topic) Aaron: one interesting thing should be that developers could test KDE even on old hardware :-)
Comment 6 Aaron J. Seigo 2008-01-14 17:16:33 UTC
now that binary packages are available this is more likely to happen. i do run it on my 1.8Ghz single core laptop, and will eventually get it on the eeepc here, but.. yeah.. testing labs don't abound.
Comment 7 Joe Kowalski 2008-01-16 06:26:53 UTC
Well I'm leaning toward this being a possible xorg bug on my setup. Before I dug into devining oprofile output, I tried disabling composite in xorg.conf, and the activation of the dashboard performed as expected,  slow the first time, and nearly instantly there after, minus the translucent grey background layer.   

My first oprofile output seems to suggest that a lot of time is being spent in libpixman.so when I start the profiling, activate and deactivate the dashboard repeatedly several times. and then deactivate the profiling and dump the system wide report. I did control against a profile without much going on (one konq window sitting open), and libpixman was substantially lower on the list. I'm now rebuilding big chunks of xorg (libXcomposite, libpixman, xorg-server), qt, kdelibs and kdebase with debuging enabled so oprofile can show me some more detail.

As for my xorg setup:
xorg-server-1.4.0.90 (marked  ~amd64 "unstable" on gentoo)
libXcomposite-0.4
pixman-0.9.6
Comment 8 Hans Chen 2008-01-17 01:22:40 UTC
Not completely on topic, but I don't find it too off topic either so I'll post it here.

On my system the dashboard view is "too fast" (in my opinion of course), it doesn't give you the smooth feeling. Rather it feels like a slap in the face. The fade out is rather pleasant though.

I have composite for KWin enabled. (Strange enough, I use an old nvidia driver).
Comment 9 Joe Kowalski 2008-01-17 03:36:23 UTC
Created attachment 23095 [details]
Opreport dump of 1 initialization of the dashboard.

I created this oprofile output with: 'opreport --symbols' to create a system
wide profile of one dashboard initialization & return to desktop. As you can
see  some 65% of the active cycyles is spent in libpixman-0.9.6.so, in the
symbol fbFetch_x8r8g8b8. Subsequant individual initialization of the dashboard
look nearly identical under oprofile. 

If someone could create a similar oprofile report I could compare with to see
if this is in fact a bug with libpixman being slow, or something else.
Comment 10 Pascal Bombardier 2008-01-19 20:48:15 UTC
I have nearly the same performance problem, located in libpixman, when some text is scrolling in konsole.

Here is oprofile output
samples  %        app name                 symbol name
765627   60.0509  libpixman-1.so.0.9.6     (no symbols)
83998     6.5883  libc-2.7.so              (no symbols)
74273     5.8255  vmlinux-2.6.24-rc7-git5-2-pae.gz (no symbols)
71182     5.5831  libQtGui.so.4.3.3        (no symbols)
49676     3.8963  libkdeinit4_konsole.so   (no symbols)
49345     3.8703  Xorg                     (no symbols)
24265     1.9032  firefox-bin              (no symbols)
18538     1.4540  libfb.so                 (no symbols)
17367     1.3622  libQtCore.so.4.3.3       (no symbols)
16404     1.2866  libxaa.so                (no symbols)
10529     0.8258  libmozjs.so              (no symbols)
10405     0.8161  nv_drv.so                (no symbols)
7751      0.6079  xfs                      (no symbols)
7264      0.5697  oprofiled                (no symbols)
7063      0.5540  libxpcom_core.so         (no symbols)

Comment 11 Robert Knight 2008-01-19 22:30:13 UTC
> I have nearly the same performance problem, located in libpixman, when some text is scrolling in konsole. 

This is a known problem which appears to be specific to NVidia graphics - http://bugs.kde.org/show_bug.cgi?id=155174 .  In the bug reporter's case the problem only occurred when using bitmap fonts.

Comment 12 wojtek 2008-01-25 02:36:11 UTC
I have the same problem as Joe Kowalski

CPU: Core 2, speed 1826 MHz (estimated)
Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with a unit mask of 0x00 (Unhalted core cycles) count 100000
samples  %        image name               app name                 symbol name
52944    68.4146  libpixman-1.so.0.9.6     libpixman-1.so.0.9.6     (no symbols)
12737    16.4588  no-vmlinux               no-vmlinux               (no symbols)
3716      4.8018  libc-2.7.so              libc-2.7.so              (no symbols)
2092      2.7033  nvidia_drv.so            nvidia_drv.so            (no symbols)
1462      1.8892  libQtCore.so.4.3.3       libQtCore.so.4.3.3       (no symbols)
1339      1.7303  libQtGui.so.4.3.3        libQtGui.so.4.3.3        (no symbols)
945       1.2211  oprofiled                oprofiled                (no symbols)
416       0.5376  libkdecore.so.5.1.0      libkdecore.so.5.1.0      (no symbols)
392       0.5065  Xorg                     Xorg                     (no symbols)
141       0.1822  librt-2.7.so             librt-2.7.so             (no symbols)
116       0.1499  bash                     bash                     (no symbols)


I'm using nvidia-drivers-169.09
screen resolution 1280x800
Comment 13 Aaron J. Seigo 2008-02-14 20:06:22 UTC
so this comes down to x.org and/or specific x.org drivers just sucking at doing what we need it to. there's really nothing much we can do about this in plasma, other than disable the dashboard feature so that you can't see the problem (nor access the feature) which is obviously a bit wrong headed ;)

i'm following a general "no upstream bugs" policy in plasma's BRs these days so as to keep our list of issues actually focused and possible to fix.
Comment 14 Lubos Lunak 2008-06-27 11:10:15 UTC
*** Bug 162171 has been marked as a duplicate of this bug. ***
Comment 15 FiNeX 2008-11-05 23:53:54 UTC
*** Bug 172418 has been marked as a duplicate of this bug. ***
Comment 16 Joe Kowalski 2008-12-15 21:41:33 UTC
The latest nvidia drivers (180.11 beta) seem to have this fixed. The dashboard appears nearly instantly now after the first initialization. 
Comment 17 Nash Kabbara 2009-02-02 07:01:09 UTC
Hello,

  I'm experiencing the same problem specified with the poster. I hit the shortcut to bring out the dashboard, then I have to wait for about 6 seconds for it to appear. This happens every time, not only the first time.

  I'm on kde 4.2 on kubuntu 8.10.

  Linux vaio 2.6.27-11-generic #1 SMP Thu Jan 29 19:28:32 UTC 2009 x86_64 GNU/Linux

  Using fglrx: OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: ATI Mobility Radeon HD 3650
OpenGL version string: 2.1.8201 Release

  This happens in both cases, when compositing in on or off.

  Any ideas?

  Thanks.
  
  P.S. This never used to happen on kde 4.1.4.


-Nash