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.

Reply via email to