Enhancing KDEs appliactions startup speed

Matthias Lechner matthias at lmme.de
Mon Mar 5 11:34:51 GMT 2007

On Sunday 04 March 2007 13:09:26 Yves Glodt wrote:
> Is this build-flag used to build Kubuntu?
> http://lists.kde.org/?l=kde-optimize&m=115867874021537&w=3
> From the Announcement:
> "since about a week, the GNU binutils have gained support for reducing
> intra-shared lib relocation overhead. Via a special flag, you can ask
> the linker to resolve relocations any uninteresting or only a certain
> set of symbols always internally. This is a significant gain for C++,
> where you normally don't make use of LD_PRELOAD's that overwrite C++
> mangled symbols.
> I've tested this against libqt3-3.3.6, and it reduces the symbol
> relocations by about 60%, reducing library footprint by about 8% and
> improving relocation startup time by far more than 50%.
> On a fully internally linked KDE 3.x system, I measured a relocation
> speedup of something between 20-40%. I've not done login time
> benchmarking. "

Hi Yves,

sounds good, but if you read further, you will find the following response:

"Looks like applications starts faster, I have however quite some
application that don't start anymore. Gdb point to
QString::QString(cons QString&) and the same overloaded = operator.
Valgrind finds a 0x0 derefernce here and indeed adding something like
   if (!d)
        d =  makeSharedNull();
makes it crash somewhere later. Haven't found a way to work around
this, eg. make
#if defined( Q_OS_MAC ) || defined(Q_OS_SOLARIS) || defined(Q_OS_HPUX)
|| defined(Q_OS_AIX)
this also succeed my OS, so QString::null gets a valid d-pointer, doesn't 

So I'd be very careful about this, I didn't want to debug nasty 
nullpointers :-)

Best regards

More information about the kubuntu-devel mailing list