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

List:       kde-optimize
Subject:    Re: making use of --dynamic-list-cpp-typeinfo
From:       "koos vriezen" <koos.vriezen () gmail ! com>
Date:       2006-10-23 12:58:44
Message-ID: d4e708d60610230558o3b81739eu1a579894d61f3f50 () mail ! gmail ! com
[Download RAW message or body]

2006/9/19, Dirk Mueller <mueller@kde.org>:
>
> Hi,
>
> 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.
>
> Below is a patch for KDE 3.x for further testing.

I give this a try with qt3 using the binutils_2.17.50.6, compiled Qt
first with this option.
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 help.

Ideas?

Koos
_______________________________________________
Kde-optimize mailing list
Kde-optimize@kde.org
https://mail.kde.org/mailman/listinfo/kde-optimize
[prev in list] [next in list] [prev in thread] [next in thread] 

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