[Lldb-commits] [PATCH] D51208: [DWARF] Fix dwarf5-index-is-used.cpp
Pavel Labath via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Sat Sep 1 08:06:46 PDT 2018
labath added a comment.
In https://reviews.llvm.org/D51208#1214743, @dblaikie wrote:
> >> But if LLDB has different performance characteristics, or the default should be different for other reasons - I'm fine with that. I think I left it on for Apple so as not to mess with their stuff because of the MachO/dsym sort of thing that's a bit different from the environments I'm looking at.
> >
> > These are the numbers from my llvm-dev email in June:
> >
> >> setting a breakpoint on a non-existing function without the use of
> >> accelerator tables:
> >> real 0m5.554s
> >> user 0m43.764s
> >> sys 0m6.748s
> >>
> >> setting a breakpoint on a non-existing function with accelerator tables:
> >> real 0m3.517s
> >> user 0m3.136s
> >> sys 0m0.376s
> >
> > This is an extreme case,
>
> What was being tested here? Is it a realistic case (ie: not a pathalogical case with an absurd number of symbols, etc)? Using ELF? Fission or not?
These numbers are from linux (so ELF), without fission, and with -fstandalone-debug. The binary being debugged is a debug build of clang. The only somewhat pathological aspect of this is that I deliberately chose a function name not present in the binary when setting the breakpoint.
> How's it compare to GDB performance, I wonder? Perhaps LLDB hasn't been optimized for the non-indexed case and could be - though that'd still potentially motivate turning on indexes by default for LLDB until someone has a motivation to do any non-indexed performance tuning/improvements.
Yes, I could very well be that LLDB is optimized for the indexed case (or perhaps the other way around, maybe the accelerator tables are optimized for the kind of searches that lldb likes to do). Though I don't mean to say that the non-indexed case is not optimized too -- a number of people over the years have spent a lot of time trying to make the index building step as fast as possible. However, these were all very low-level optimizations (the "improve parallelism by reducing lock contention" kind) and it's possible we might come up with something with better performance characteristics if we looked at a bigger picture. However, that would probably require redesigning a lot of things.
So, with that in mind, I agree we should enable debug_names for -glldb. I'll create a patch for that.
Repository:
rLLDB LLDB
https://reviews.llvm.org/D51208
More information about the lldb-commits
mailing list