• 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
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
docs Loading commit data...
gni Loading commit data...
gypfiles Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
Makefile Loading commit data...
Makefile.android Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...