[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    Application execution speed notes.
From:       Sean Pecor <sean () digitalspinner ! com>
Date:       2002-04-10 15:52:42
[Download RAW message or body]

Hey folks,

I'm attempting to establish what sort of performance improvements a user can 
achieve with KDE by compiling KDE and its dependencies w/ optimizations etc. 
Right now the biggest perceived performance problem is the startup delay 
which is pretty substantial for some applications. I want to avoid temporary 
hacks like objprelink. 

On my machine, a Pentium 4 1.8ghz w/ 512mb 800mhz RDRAM, 80gb drive (hdparm -t 
reports 36mb/sec, hdparm -T reports 560mb/sec) here are some timed results 
for many KDE applications with the "--help" command line. The time after 
equal sign is the real elapsed time reported by the time command. Notes 
follow the times so please read on.

(compiled with gcc 2.95, -O3, with sharing enabled)
/opt/kde3/bin/kodo --help = 0:00.21
/opt/kde3/bin/kappfinder --help = 0:00.22
/opt/kde3/bin/kblackbox --help = 0:00.22
/opt/kde3/bin/kaphorism --help = 0:00.23
/opt/kde3/bin/kjots --help = 0:00.29
/opt/kde3/bin/kmahjongg --help = 0:00.30
/opt/kde3/bin/kfax --help = 0:00.31
/opt/kde3/bin/kcalc --help = 0:00.32
/opt/kde3/bin/katomic --help = 0:00.33
/opt/kde3/bin/knotes --help = 0:00.34
/opt/kde3/bin/karm --help = 0:00.35
/opt/kde3/bin/kmines --help = 0:00.35
/opt/kde3/bin/kandy --help = 0:00.36
/opt/kde3/bin/kgeo --help = 0:00.36
/opt/kde3/bin/kiconedit --help = 0:00.36
/opt/kde3/bin/kfract --help = 0:00.37
/opt/kde3/bin/kdvi --help = 0:00.39
/opt/kde3/bin/kfind --help = 0:00.39
/opt/kde3/bin/kaddressbook --help = 0:00.40
/opt/kde3/bin/knode --help = 0:00.44
/opt/kde3/bin/kfouleggs --help = 0:00.45
/opt/kde3/bin/klauncher --help = 0:00.48
/opt/kde3/bin/kmenuedit --help = 0:00.48
/opt/kde3/bin/klipper --help = 0:00.49
/opt/kde3/bin/kdict --help = 0:00.50
/opt/kde3/bin/kcontrol --help = 0:00.52
/opt/kde3/bin/kbattleship --help = 0:00.57
/opt/kde3/bin/konqueror --help = 0:00.62
/opt/kde3/bin/kasteroids --help = 0:00.63
/opt/kde3/bin/kontour --help = 0:00.64
/opt/kde3/bin/kchart --help = 0:00.66
/opt/kde3/bin/kedit --help = 0:00.66
/opt/kde3/bin/kformula --help = 0:00.67
/opt/kde3/bin/kate --help = 0:00.67
/opt/kde3/bin/kivio --help = 0:00.68
/opt/kde3/bin/kmail --help = 0:00.69
/opt/kde3/bin/kword --help = 0:00.70
/opt/kde3/bin/kwrite --help = 0:00.70
/opt/kde3/bin/kbackgammon --help = 0:00.74
/opt/kde3/bin/kicker --help = 0:00.79
/opt/kde3/bin/kaboodle --help = 0:00.91
/opt/kde3/bin/korganizer --help = 0:00.94

Comparing kaboodle which takes 0.91 seconds to respond, with kappfinder which 
takes 0.22 seconds to respond via ldd is pretty telling. kaboodle loads every 
library that kappfinder loads, plus the following which takes an additional 
0.69 (!) seconds to load:

        kaboodle.so => /opt/kde3/lib/kaboodle.so (0x40016000)
        libkaboodlepart.so => /opt/kde3/lib/libkaboodlepart.so (0x40020000)
        libkparts.so.2 => /opt/kde3/lib/libkparts.so.2 (0x4003b000)
        libartskde.so.1 => /opt/kde3/lib/libartskde.so.1 (0x40075000)
        libkio.so.4 => /opt/kde3/lib/libkio.so.4 (0x4009a000)
        libkdesu.so.4 => /opt/kde3/lib/libkdesu.so.4 (0x405cb000)
        libutil.so.1 => /lib/libutil.so.1 (0x407db000)
        libsoundserver_idl.so.1 => /opt/kde3/lib/libsoundserver_idl.so.1
        libkmedia2_idl.so.1 => /opt/kde3/lib/libkmedia2_idl.so.1 (0x40fd8000)
        libartsflow.so.1 => /opt/kde3/lib/libartsflow.so.1 (0x41011000)
        libaudiofile.so.0 => /usr/lib/libaudiofile.so.0 (0x410f3000)
        libartsflow_idl.so.1 => /opt/kde3/lib/libartsflow_idl.so.1
        libmcop.so.1 => /opt/kde3/lib/libmcop.so.1 (0x4118d000)
        libasound.so.1 => /usr/lib/libasound.so.1 (0x412b9000)
        libqtmcop.so.1 => /opt/kde3/lib/libqtmcop.so.1 (0x407de000)

I'm not sure what to make of the massive delay, other than I know that libkio 
is huge (3 megs) and libartsflow and libmcop are each over 1 meg. Why so big? 
Is this bloat or just lots of efficient mandatory code? 

Is this delay unavoidable with shared libraries? Static applications that I 
use open up much faster as do their dialogs.

Once I re-compile everything (including KDE library dependencies) I'll run my 
benchmark script to see if things improve. Then next I'll recompile KDE with 
static libraries to see what happens. I'll report back with my findings.

Another thought is that it would be nice if programs could be closed yet 
remain resident. For example, kate takes almost 1 seconds to open up a source 
file, but subsequent files open up instantly when kate is resident. It would 
be cool if when I closed kate that the actual application just went to sleep 
instead.

Sean.

-- 
Digital Spinner, Inc.
Cutting edge web design and applications development.
http://www.digitalspinner.com
Phone: 802.948.2020
Fax: 802.948.2749

>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic