This is the mail archive of the
gdb-prs@sourceware.org
mailing list for the GDB project.
[Bug symtab/15412] New: Performance regression in "info {func,var,types} foo" (mostly info types).
- From: "dje at google dot com" <sourceware-bugzilla at sourceware dot org>
- To: gdb-prs at sourceware dot org
- Date: Sat, 27 Apr 2013 21:34:32 +0000
- Subject: [Bug symtab/15412] New: Performance regression in "info {func,var,types} foo" (mostly info types).
- Auto-submitted: auto-generated
http://sourceware.org/bugzilla/show_bug.cgi?id=15412
Bug #: 15412
Summary: Performance regression in "info {func,var,types} foo"
(mostly info types).
Product: gdb
Version: unknown
Status: NEW
Severity: normal
Priority: P2
Component: symtab
AssignedTo: unassigned@sourceware.org
ReportedBy: dje@google.com
Classification: Unclassified
In a large program I'm seeing a performance regression in
info {func,var,types} ^foo::(anonymous namespace)
For example, in 7.5 it takes 2 seconds, in 7.6 and cvs head it takes ~300
seconds.
I think there are multiple factors here because a comparison of gdb
before/after the type-pretty-printing patches of ~2012-11-12 I only see a perf
degradation from 2 seconds to 150 seconds. So something after that is then
slowing things down from 150s to 300s.
Data point: If I hack "info {func,var,type}" to set type_print_options.raw = 1,
I get most (maybe all) the performance back.
It seems like we want type-pretty-printing for info types, but the performance
cost can be high. Thus I'm thinking "info {func,var,types}" should have a /r
(raw) option.
OTOH, a lot of the cost can be reduced, I think, by caching lookups: the same
symbol is processed many(!!!) times. The caching could be at multiple levels
(e.g., more than just simple symbol lookups), I'm not sure what's the best one
yet.
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
- Follow-Ups:
- [Bug symtab/15412] Performance regression in "info {func,var,types} foo" (mostly info types).
- From: tobias.hunger at digia dot com
- [Bug symtab/15412] Performance regression in "info {func,var,types} foo" (mostly info types).
- From: xunxun1982 at gmail dot com
- [Bug symtab/15412] Performance regression in "info {func,var,types} foo" (mostly info types).
- From: asmwarrior at gmail dot com
- [Bug symtab/15412] Performance regression in "info {func,var,types} foo" (mostly info types).
- From: asmwarrior at gmail dot com
- [Bug symtab/15412] Performance regression in "info {func,var,types} foo" (mostly info types).
- From: andre.poenitz at digia dot com
- [Bug symtab/15412] Performance regression in "info {func,var,types} foo" (mostly info types).
- From: flq at live dot com