[Gllug] Sluggishness and confusion

Nix nix at esperi.org.uk
Mon Feb 7 15:50:57 UTC 2005


On Mon, 7 Feb 2005, Nick Richards spake:
>> Again - same experience - gnome 2.6 on fedora and also on slackware
>> are perfectly useable on even my prehistoric equipement...
>> 
>> I wonder what's wrong with the Debianish setup...
> 
> the only variable i know of that is different (apart from the kernel
> but with 2.6 that's not a huge divergence) is prelinking. i have to
> assume that it makes a big difference with gnome because my athlon64
> 3000+, 1 gig ram etc. is absolutely flying with fc3 and gnome 2.8.

Prelinking only speeds up process startup, and GNOME, unlike KDE,
doesn't make very heavy use of exec() while you're doing random
things. (This is because its component infrastructure was always iffily
designed and is now almost totally unused, but that's quite a different
rant.)

It is instructive to compare to KDE here. KDE not only makes heavy use
of exec(), it also uses dlopen() a lot and is written in C++... and C++
shared libraries have one relocation per function anywhere up the
class's inheritance hierarchy per virtual method table, which translates
to a massive number of relocations.

You can tell if you've got KDE on a box when prelink runs: prelink slows
down by about an order of magnitude as it chews at all those KDE
programs. If it wasn't for prelink, you'd be taking that hit whenever
you started a KDE program --- which is why the KDE folks introduced the
kludge called kdeinit, to reduce the impact of that. If you prelink and
set the KDE_IS_PRELINKED env var, kdeinit mostly turns itself off as
unneeded.

If you set KDE_IS_PRELINKED and *aren't* prelinked, KDE feels, not slow,
but *jerky*; every so often things slow drastically because something's
been exec()ed, and process startup takes an age.

-- 
Synapsids unite! You have nothing to lose but your eggshells!
-- 
Gllug mailing list  -  Gllug at gllug.org.uk
http://lists.gllug.org.uk/mailman/listinfo/gllug




More information about the GLLUG mailing list