• Michael Lippautz's avatar
    heap: Fix initial GC configuration for C++-only heaps · 7ef67b2e
    Michael Lippautz authored
    Heaps in V8 start with a large limit that is shrunk upon young
    generation GCs, based on some liveness estimate. This provides best
    throughput during startup while at the same time finding a reasonable
    first limit.
    
    For C++ (embedder memory) there is no estimate which is why it was
    piggy-backing on V8. This breaks in scenarios where no JS memory is
    allocated.
    
    In this fix we start a memory reducer after embedder memory has hit
    the activation threshold if no GC happened so far. As soon as a single
    Scavenger has happened, we leave it up to the JS estimate to figure
    out a limit. Memory reducing GCs will then find a regular limit based
    on the initial live size.
    
    Drive-by: Give embedders the same activiation threshold of 8MB as JS.
    
    Bug: chromium:1217076
    Change-Id: I8469696002ac2af8d75d6b47def062d2608387a1
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2944935Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
    Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#75012}
    7ef67b2e
incremental-marking.h 9.93 KB