Hello again! Kindly reminding about this question.
Thank you, Fedor. On Fri, Sep 4, 2015 at 2:06 AM, Fedor Indutny <[email protected]> wrote: > Hello! > > This is a follow-up on the discussion started in: > https://codereview.chromium.org/1324023007/ . > > There appears to be a performance regression in the recent v8 versions. > From my tests the regression comes from the introduction of the `std::map`s > to keep the live array buffers. Iterating over it is pretty much fast, but > inserting the buffers into it has non-linear time (because `std::map`s are > powered by Red-Black trees), thus slowing the things down. > > What's really interesting is that External strings solve the same problem > differently and (it looks like) more efficiently. They are just using > lists, and checking the marks on the list during GC. Insertion into the > list is cheap, and can't really outperform the `std::map` insertion. > Iteration with reading marks appears to be taking linear time, so it is > still better than inserting things into the `std::map`. Even more, we do > insertions into the maps during each GC cycle too, so the time is > definitely bigger than just for the lists+markings. > > I suggest to merge these algorithms, and just use one class to manage both > of them. In my opinion, the class should be using lists to improve the > performance. I'm open to any kind of suggestions, though! > > Thank you, > Fedor. > -- -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev --- You received this message because you are subscribed to the Google Groups "v8-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
