[heap] Move initial objects into RO_SPACE
This moves: * the main oddballs (null, undefined, hole, true, false) as well as their supporting maps (also adds hole as an internalized string to make this work). * most of the internalized strings * the struct maps * empty array * empty enum cache * the contents of the initial string table * the weak_cell_cache for any map in RO_SPACE (and eagerly creates the value avoid writing to it during run-time) The StartupSerializer stats change as follows: RO_SPACE NEW_SPACE OLD_SPACE CODE_SPACE MAP_SPACE LO_SPACE old 0 0 270264 32608 12144 0 new 21776 0 253168 32608 8184 0 Overall memory usage has increased by 720 bytes due to the eager initialization of the Map weak cell caches. Also extends --serialization-statistics to print out separate instance type stats for objects in RO_SPACE as shown here: Read Only Instance types (count and bytes): 404 16736 ONE_BYTE_INTERNALIZED_STRING_TYPE 2 32 HEAP_NUMBER_TYPE 5 240 ODDBALL_TYPE 45 3960 MAP_TYPE 1 16 BYTE_ARRAY_TYPE 1 24 TUPLE2_TYPE 1 16 FIXED_ARRAY_TYPE 1 32 DESCRIPTOR_ARRAY_TYPE 45 720 WEAK_CELL_TYPE Bug: v8:7464 Change-Id: I12981c39c82a7057f68bbbe03f89fb57b0b4c6a6 Reviewed-on: https://chromium-review.googlesource.com/973722 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#52435}
Showing
This diff is collapsed.
This diff is collapsed.
Please
register
or
sign in
to comment