Description[parser/ast] Reduce memory consumption for AstConsString.
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}
Committed: https://chromium.googlesource.com/v8/v8/+/1769c7034ba4203c6301d5db5e3081b47585af0d
Patch Set 1 #Patch Set 2 : Fix (and minor cleanup) #
Messages
Total messages: 19 (12 generated)
|