From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5169 invoked by alias); 27 Apr 2013 21:34:33 -0000 Mailing-List: contact gdb-prs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-prs-owner@sourceware.org Received: (qmail 5142 invoked by uid 48); 27 Apr 2013 21:34:33 -0000 From: "dje at google dot com" To: gdb-prs@sourceware.org Subject: [Bug symtab/15412] New: Performance regression in "info {func,var,types} foo" (mostly info types). Date: Sat, 27 Apr 2013 21:34:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gdb X-Bugzilla-Component: symtab X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: dje at google dot com X-Bugzilla-Status: NEW X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: unassigned at sourceware dot org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 X-SW-Source: 2013-q2/txt/msg00160.txt.bz2 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.