[cxx-abi-dev] comparing type_infos (was Re: Patch for throw/catch problems)

Jakub Jelinek jakub at redhat.com
Wed Aug 15 08:05:14 UTC 2001


On Tue, Aug 14, 2001 at 03:59:11PM -0700, Richard Henderson wrote:
> On Tue, Aug 14, 2001 at 11:47:45PM +0100, Jason Merrill wrote:
> > >>>>> "Mark" == Mark Mitchell <mark at codesourcery.com> writes:
> > > Startup cost happens once per program, except for any excess memory
> > > used that hangs around.  So, for a long-running application (anything
> > > graphical definitely qualifies) this isn't *too* important, and there
> > > are techniques (caching, prelinking) that can get around the problem.
> > 
> > And yet it seems to be a significant problem for a significant number of
> > people.
> 
> Indeed.  Mark, havn't you noticed that KDE, Gnome and Mozilla are
> high on the list of projects that complain about startup time?
> 
> And no, caching and prelinking don't help here since we're dealing
> with weak symbols.  Those can't be prelinked and wind up on the
> conflict list (which uses yet more runtime memory, btw) which gets
> resolved after the rest of prelinking is complete.

Prelinking helps there some (as I tried to explain, it has special C++ mode
in which it removes conflicts if they point into provably unused virtual
tables or type_info structures), also conflict list does not use "yet more
runtime memory", it just uses more memory than it could (the conflict list
is always shorter than the sum of all reloc sections in all libraries, and
although those reloc sections take virtual memory, they are not referenced
during prelinking so with the exception of page boundaries at start and end
they will not eat any real memory).

	Jakub



More information about the cxx-abi-dev mailing list