• fedor's avatar
    heap: make array buffer maps disjoint · 9e3676da
    fedor authored
    Remove intersection from the `std::map`s representing current live
    ArrayBuffers. While being simpler to understand, it poses significant
    performance issue for the active ArrayBuffer users (like node.js).
    
    Store buffers separately, and process them together during mark-sweep phase.
    
    The results of benchmarks are:
    
    $ ./node-slow bench && ./node-fast bench
    4997.4 ns/op
    4685.7 ns/op
    
    NOTE: `fast` - was a patched node.js, `slow` - unpatched node.js with vanilla v8.
    
    BUG=
    
    Review URL: https://codereview.chromium.org/1316873004
    
    Cr-Commit-Position: refs/heads/master@{#30495}
    9e3676da
heap.h 108 KB