Jochen, This totally makes sense. Thank you for the clarification.
I will continue thinking about it, looks like there could be some further optimization still. Thank you, Fedor. On Wed, Sep 9, 2015 at 3:46 AM, Jochen Eisinger <[email protected]> wrote: > we used to have such a list and that resulted in second long pauses during > gc when traversing the list. Using the map spreads out this work to the > incremental marking, so there are no long pauses anymore. > > On Wed, Sep 9, 2015 at 12:41 PM Fedor Indutny <[email protected]> wrote: > >> 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.
