From: Jan Kratochvil <jan.kratochvil@redhat.com>
To: Joel Brobecker <brobecker@adacore.com>
Cc: Tom Tromey <tromey@redhat.com>, gdb-patches@sourceware.org
Subject: Re: [patch 2/2] iFort compat.: case insensitive symbols (PR 11313)
Date: Mon, 22 Nov 2010 19:44:00 -0000 [thread overview]
Message-ID: <20101122194336.GA21855@host0.dyn.jankratochvil.net> (raw)
In-Reply-To: <20101122193041.GU2634@adacore.com>
On Mon, 22 Nov 2010 20:30:41 +0100, Joel Brobecker wrote:
> I was actually wondering about the change in the hash algorithm more
> than the cost of calling tolower. For instance, "tmp" and "Tmp" would
> have had different hash values, but not anymore. So, presumably, when
> you start looking up for "tmp", the associated hash bucket will also
> contain "Tmp" whereas it wouldn't before. I need to look at the actual
> hashing parameters to see if we can figure out whether this should have
> any real effect in practice... If the number of elements in each bucket
> is reasonable, a few more iterations shouldn't be an issue.
This is a more general issue.
I think (I did not measure it) most of the symbols differ even after tolower.
The symbols like tmp<->Tmp exist but rarely. I agree the hashing function
will get worse but I did not even measure it considering the change
negligible.
There is more an issue MINIMAL_SYMBOL_HASH_SIZE is constant:
#define MINIMAL_SYMBOL_HASH_SIZE 2039
Some objfiles have many symbols:
libwebkit.so.debug: 54980 symbols
/MINIMAL_SYMBOL_HASH_SIZE = 27
log2(54980)=16
gdb symtab: 36452 symbols
/MINIMAL_SYMBOL_HASH_SIZE = 18
log2(54980)=16
In such case in fact the whole hash table makes no sense and it is even
cheaper to just do binary search on objfile->msymbols which is already
qsort-ed and be done with it.
Still a hash table should be faster than a binary search but the hash table
size would need to be adaptable.
But rather than optimizations of this which reduce just the CPU load which was
in my measurements 2% during GDB startup (due to its waiting on disk). We
could for example rather delay searching+loading any objfiles' symbols we do
not need which would do another major GDB startup time reduction like
.gdb_index did. This is the reason I did not intend to spend any time on some
CPU discutable optimizations, they IMO do not make sense with the current
state of gdb performance.
Thanks,
Jan
next prev parent reply other threads:[~2010-11-22 19:44 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-07 3:50 Jan Kratochvil
2010-11-08 16:36 ` Joel Brobecker
2010-11-08 17:02 ` Jan Kratochvil
2010-11-08 18:31 ` Joel Brobecker
2010-11-22 3:54 ` Jan Kratochvil
2010-11-22 18:54 ` Joel Brobecker
2010-11-22 19:19 ` Jan Kratochvil
2010-11-22 19:30 ` Joel Brobecker
2010-11-22 19:44 ` Jan Kratochvil [this message]
2010-11-22 19:57 ` Joel Brobecker
2010-11-24 18:53 ` Tom Tromey
2010-11-24 19:22 ` Jan Kratochvil
2010-11-24 20:01 ` Tom Tromey
2010-11-24 20:08 ` Joel Brobecker
2010-11-24 21:37 ` Tom Tromey
2010-11-24 21:45 ` Jan Kratochvil
2010-11-24 21:55 ` Tom Tromey
2010-11-24 20:17 ` Jan Kratochvil
2010-11-24 20:31 ` Joel Brobecker
2010-11-24 20:58 ` Jan Kratochvil
2011-04-08 17:59 ` obsolete: " Jan Kratochvil
2010-11-08 17:18 ` Pierre Muller
2010-11-07 3:50 [patch 1/2] Code cleanup: New init_one_comp_unit Jan Kratochvil
2010-11-12 18:36 ` Tom Tromey
2010-11-12 18:43 ` Jan Kratochvil
2010-11-12 18:46 ` Tom Tromey
2010-11-16 4:37 ` Jan Kratochvil
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=20101122194336.GA21855@host0.dyn.jankratochvil.net \
--to=jan.kratochvil@redhat.com \
--cc=brobecker@adacore.com \
--cc=gdb-patches@sourceware.org \
--cc=tromey@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