[llvm-dev] RFC: Improving the performance of ItaniumDemangle
Scott Smith via llvm-dev
llvm-dev at lists.llvm.org
Mon Apr 24 18:02:23 PDT 2017
(Again), while trying to improve the performance of lldb, I ran into a
bottleneck with the demangler. This may be specific to my platform -
Ubuntu 16.04, probably using libstdc++, not libc++. It makes extensive use
of std::string and std::vector, and I see memory allocation at the top. I
prototyped a version that uses an arena-style memory allocator (you can
allocate, but you can't ever free). It is approximately 14+% faster. I
think I can further optimize it by making repeated appends zero-copy (for
the string being appended too).
The code right now is a little ugly, because it uses a thread local
variable to pass around the arena pointer, rather than change every + and
+= to be function calls that take db.arena as a parameter. I'm not sure
what you guys would prefer for that either (thread local variable vs api
change).
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170424/171063dd/attachment.html>
More information about the llvm-dev
mailing list