Re: [DynInst_API:] commit: symtab and parseAPI optimizations now on master


Date: Thu, 05 Feb 2015 13:02:51 -0600
From: Bill Williams <bill@xxxxxxxxxxx>
Subject: Re: [DynInst_API:] commit: symtab and parseAPI optimizations now on master
On 02/05/2015 11:05 AM, Bill Williams wrote:
I've just merged various SymtabAPI and ParseAPI memory optimizations
back to our master branch. This work covers the following things:

1) Line information is now parsed per-CU, provided that you ask for the
file/line corresponding to an address. Other line information queries
still require a full line info parse.
2) Symbols' demangled names are generated on-the-fly, rather than being
stored persistently. This should result in lower memory overhead, some
additional startup time (as building the demangled name indexes has
become more expensive), and roughly comparable query speeds (we're
replacing a log n set of string compares with a hash and a demangle).
3) ParseAPI's block and function extent data structures should consume
much, much less space in the common case (mostly non-overlapping blocks
and functions). It is possible that there will be a small CPU tradeoff
for some users.
4) StackwalkerAPI no longer accidentally triggers a full binary parse by
asking ParseAPI for the blocks containing a given address.

IMPORTANT INTERFACE CHANGES: the Symbol class has been revised in line
with my recent RFC to provide foo_names_begin/foo_names_end accessors.
The old container-style interfaces *must* be discarded in order for
optimization 2) to actually work. This has propagated through various
users of symbol names; many interfaces that were returning string
references now must return strings by value, and the getCallee method in
BPatch_loopTreeNode now returns a std::string rather than a const char*.

This is not an official release, but users who are interested in these
optimizations are encouraged to try them out.

Note, also, that this is likely to require a clean build of Dyninst (make clean suffices). I should have mentioned this initially.

--bw

Bill Williams
Paradyn Project
bill@xxxxxxxxxxx
_______________________________________________
Dyninst-api mailing list
Dyninst-api@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


--
--bw

Bill Williams
Paradyn Project
bill@xxxxxxxxxxx
[← Prev in Thread] Current Thread [Next in Thread→]