labath added a comment.

In D74759#1880559 <https://reviews.llvm.org/D74759#1880559>, @jarin wrote:

> In D74759#1880499 <https://reviews.llvm.org/D74759#1880499>, @labath wrote:
>
> > I like this idea a lot, in principle. It is much simpler than a full blown 
> > interval tree, and it should give us similar performance characteristics.
> >
> > Have you done a proper complexity analysis here? I doubt the `O(log n)` 
> > claim is true in general. It would have to be at least `O(m + log n)` (m - 
> > number of elements found), but it's not clear to me whether even this is 
> > true in general. (However, I believe this can achieve ~~log(n) for 
> > non-degenerate cases.)
>
>
> Thanks for the feedback! We were aiming for something simple and efficient 
> enough. Our preliminary results show that the lookup pretty much disappears 
> even from the profiles it was dominating before.
>
> The implementation is pretty much taken from the "Augmented tree" section of 
> https://en.wikipedia.org/wiki/Interval_tree where we just use the tree 
> induced by the pivots of the binary search as the binary search tree that we 
> augment. I believe the complexity is O(m log n), even though the wikipedia 
> article makes a O(m + log n) claim. This should be still much better than the 
> current O(n) and the memory cost seems to be quite palatable (extra word per 
> symbol).


Ok, I see. Thanks for that reference. The wikipedia description is somewhat 
short, but I am beginning to understand how this could work. Maybe you could 
include a pointer to the wikipedia page and/or the book it references next to 
the algorithm.


Repository:
  rLLDB LLDB

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74759/new/

https://reviews.llvm.org/D74759



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to