• vogelheim's avatar
    [parser/ast] Reduce memory consumption for AstConsString. · 1769c703
    vogelheim authored
    The past re-factoring inadvertently increased memory consumption for
    AstConsString. This implements a micro-optimization to revert and slightly
    improve beyond the original state.
    
    Example, Zone size for parsing closure.js:
      - 20,999,848 B (before refactoring)
      - 21,651,056 B (after refactoring patch; 3.1% regression)
      - 20,641,320 B (after this CL; 1.7% improvement over original)
    
    (Reason: ZoneLinkedList requires 4 pointers to support
    the std::list functionality (Zone*, head/tail ptr, payload ptr).
    But since we only append and iterate in order and have the Zone*
    available in the context, a super simple linked list (value + next ptr)
    saves a bit of memory, especially for the common case of having 0 or 1
    string segments.)
    
    BUG=v8:6902, chromium:706935
    
    Review-Url: https://codereview.chromium.org/2792353002
    Cr-Commit-Position: refs/heads/master@{#44385}
    1769c703
ast-value-factory.cc 13.2 KB