RE: [Nautilus-list] throbber out-of-process



I've been following a discussion on the KDE developer mailing list with the
thread name

Faster startups by fixing C++ object files before linking

I've included some of the relevant messages below, can a similar change be
made with Gnome?

Tom M.
TomM Pentstar com

"
Message: 3
From: Leon Bottou <leonb research att com>
To: bastian kde org
Subject: Faster startups by fixing C++ object files before linking  ( 30-50%
faster startups )
Date: Thu, 26 Jul 2001 18:01:41 -0400
Cc: kde-devel max tat physik uni-tuebingen de
Reply-To: kde-devel kde org


--------------Boundary-00=_T6P3SVDN1ICILNB521BR
Content-Type: text/plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: 8bit


Reading Waldo Bastian's text on C++ shared libraires gave me some ideas.
Eventually I spent a few nights trying them.

The proposed scheme modifies the object files before linking
in a way that reduces the number of expensive relocations.
Startup times are reduced by 30 to 50%.

See the attached files for details.

Regards,

- Leon Bottou
"

Message: 13
From: Waldo Bastian <bastian kde org>
To: kde-devel kde org
Subject: Re: Faster startups by fixing C++ object files before linking (
30-50% faster startups )
Date: Fri, 27 Jul 2001 07:49:40 -0700
Reply-To: kde-devel kde org

On Thursday 26 July 2001 08:34 pm, Ian Reinhart Geiser wrote:
> On Thursday 26 July 2001 06:01 pm, Leon Bottou wrote:
> > Reading Waldo Bastian's text on C++ shared libraires gave me some ideas.
> > Eventually I spent a few nights trying them.
> >
> > The proposed scheme modifies the object files before linking
> > in a way that reduces the number of expensive relocations.
> > Startup times are reduced by 30 to 50%.
> >
> > See the attached files for details.
>
> I may be confusing things but is this not about the same idea as
> precompiled headers?

No.

> It sounds similar but I could be mistaken.  Could
> someone please explane this in a little more detail?

Instead of

1: Call other_lib::some_func
2: Call other_lib::some_func
3: Call other_lib::some_func
4: Call other_lib::some_func
...

It changes this in:

1: Call same_lib::some_func_stub
2: Call same_lib::some_func_stub
3: Call same_lib::some_func_stub
4: Call same_lib::some_func_stub
...
some_func_stub: Call other_lib::some_func

Since it is is expensive to link other_lib::some_func but rather cheap to
link same_lib::some_func_stub this replaces 4 expensive link actions with 4
cheap ones and 1 expensive one. These link actions are done at startup.

Cheers,

Waldo





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]