Enhancing KDEs appliactions startup speed
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?
> 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. "
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
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)
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
More information about the kubuntu-devel