This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: DW_AT_specification and partial symtabs


Daniel wrote:


> 1) is very easy to measure. GDB has a command line option --readnow
> which forces symtabs to be read in immediately. I tried my normal
> performance testcase: a dummy main() linked to all of mozilla's
> component libraries, with full stabs debug info. Note stabs, not
> DWARF2, so the timing may vary. Also note that we duplicate psymtab
> and symtab creation doing it this way, so it overestimates the cost.

I think that's an understatement.


Elena wrote:

But with --readnow we do both psymtabs and symtabs. I wonder, if we
didn't do psymtabs at all, the time would improve, one hopes.
And the memory footprint would shrink too.

Some back of envelope caculations are in order.


``(gdb) print sizeof (struct ...) indicates that sizeof(symtab) ~= 2*sizeof(psymtab) so GDB is burning 33% of allocated memory. Assuming memory and file I/O are the bottle neck, slashing 33% of memory should slash 33% of the time.

I just hope GDB isn't doing something stupid like searching psymtab before symtab.

 > Note that none of those times is really acceptably fast, IMHO.  Probably
 > they all can be improved.  Looking at profiling data I see about three
 > seconds we can knock off the symbol reader and there are almost
 > certainly more.

I think oprofile data would be far more useful - remember the thread problem where the profile data (and its suggested micro-optimizations) were totally bogus. But having said that, wasn't there a proposal to fix/rewrite BFD's mmap interface?


I think what's needed is a proper comparison of the current contents of the symbol tabe VS exactly what and how often GDB requests that info. For dwarf2, for instance, it now reads in all the location expression stuff, and that, relatively speaking, is never used.

If psymtab's are dumped (or at least burried) the core GDB <-> symtab interface is simplified/tightened, people can change the internals without breaking everything. David, I belive, has been working in that direction.

Andrew



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]