public inbox for gdb@sourceware.org
 help / color / mirror / Atom feed
From: Andrew Cagney <ac131313@redhat.com>
To: David Carlton <carlton@math.stanford.edu>,
	Elena Zannoni <ezannoni@redhat.com>, Jim Blandy <jimb@redhat.com>
Cc: gdb <gdb@sources.redhat.com>
Subject: Re: [rfc] struct dictionary
Date: Fri, 25 Apr 2003 15:31:00 -0000	[thread overview]
Message-ID: <3EA954D7.2070207@redhat.com> (raw)
In-Reply-To: <ro1znmf8a9g.fsf@jackfruit.Stanford.EDU>

> On Thu, 24 Apr 2003 22:17:23 -0400, Andrew Cagney <ac131313@redhat.com> said:
> 
> 
>>> Blocks currently store symbols in one of three different ways:
>>> using a hash table, using an unsorted list, or using a sorted list.
>>> Most blocks are built by buildsym.c, which use only the former two
>>> mechanisms.  Sorted list blocks are only being produced by
>>> mdebugread.c.  And, to make matters worse, jv-lang.c produces one
>>> unsorted list block for which the predicate BLOCK_SHOULD_SORT
>>> matches; the chain of events by which GDB actually treats that
>>> block correctly is very tenuous.
> 
> 
>> Um, didn't BLOCK_SHOULD_SORT get deleted?
> 
> 
> No.  I tried in last fall, but Jim didn't like it because it probably
> would have made performance for mdebugread be awful.  Daniel recently
> proposed hashing sorted blocks on the fly, but he withdrew that patch
> quickly when he found a way to work around whatever problem caused him
> to be particularly annoyed with sorted blocks.

Hmm, the lack of activity towards mdebugread suggests it's either dieing 
or dead.  Perhaphs by dropping that sort we (as in the developer 
community) can encourage it in the direction we (as developers) would 
likely prefer ....

Dig dig: http://sources.redhat.com/ml/gdb-patches/2002-09/msg00564.html
My reading is that there was simply a request for more tangable numbers 
on how bad mdebug read was going to become.  So ..., what was the 
performance gain for stabs when the hash table was added?  Given that a 
binary sort's [average] performance is not as good as a hashtable, that 
number should give you an upper bound on the consequences.

Dig dig: http://sources.redhat.com/ml/gdb-patches/2001-05/msg00508.html
suggests that things could potentially be twice as slow ``Oops''. 
Looking at `break captured_main; run' I suspect it is typically less.

Assuming, now that there is a number, is this ok?  I'm willing to be the 
fall-guy (my job) and be the one adding something to the NEWS file.

> Basically, either somebody needs to buildsym-ify mdebugread.c or else
> symbol lookup has to be made a bit more abstract.  These would
> actually both be good ideas for reasons other than getting rid of
> BLOCK_SHOULD_SORT, so it's certainly not an either-or choice.

Ok, humor me ...
http://sources.redhat.com/ml/gdb/2003-04/msg00017.html
why even build these data structures during symbol reading?  It takes 
time and space, yet is probably never used.  Why not on-demand build 
this dictionary specialized for the block?  If the user for some reason 
accesses a block then, in all probablility, they will make later 
accesses to that same block - getting benefit.

> David Carlton
> carlton@math.stanford.edu

Andrew


  reply	other threads:[~2003-04-25 15:31 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-04-16 20:05 David Carlton
2003-04-25  2:17 ` Andrew Cagney
2003-04-25  2:22   ` Daniel Jacobowitz
2003-04-25  4:35   ` David Carlton
2003-04-25 15:31     ` Andrew Cagney [this message]
2003-04-25 16:38       ` David Carlton
2003-05-01 23:09         ` Andrew Cagney
2003-05-10 18:09           ` Andrew Cagney
2003-06-03  2:20             ` Elena Zannoni
2003-06-03  3:00               ` David Carlton
2003-04-29 15:10     ` Andrew Cagney
2003-04-29 19:16       ` David Carlton
2003-04-29 20:06         ` Andrew Cagney
2003-04-29 20:39           ` David Carlton

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3EA954D7.2070207@redhat.com \
    --to=ac131313@redhat.com \
    --cc=carlton@math.stanford.edu \
    --cc=ezannoni@redhat.com \
    --cc=gdb@sources.redhat.com \
    --cc=jimb@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).