v8/test/cctest/heap
Ulan Degenbaev dfc6b4ddaa [heap] New live byte tracking.
This patch changes how space size and capacity are updated in GC:
- space capacity changes only when a page added/removed from the space.
- space size is reset to zero before sweeping and incremented by
  page->live_bytes_count_ for each to-be-swept page.
- space size is refined after sweeping using the accurate
  page->allocated_bytes counter produces by the sweeper.

Invariants:
1. space.capacity = sum [page.size | for page in space].
2. After marking, before sweeping:
   a) space.size = sum [page.live_bytes_count | for page in space].
3. After sweeping, before marking ends:
   a) space.size = sum [page.allocated_bytes | for page in space].
   b) page.allocated_bytes >= (sum [object.size | for object in page] +
         page.linear_allocation_area).
   c) page.area_size = (page.allocated_bytes + page.wasted_memory +
         sum [free_list_entry.size | for free_list_entry in page].

3.b becomes equality if the mutator is not doing array trimming,
object slack tracking during sweeping.

Bug: chromium:694255
Change-Id: Ic8d16a8171187a113fee2df8bf3c2a4c5e77bc08
Reviewed-on: https://chromium-review.googlesource.com/618889
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#47409}
2017-08-17 18:16:33 +00:00
..
heap-tester.h [heap] Cleanup cctests 2017-08-11 10:40:49 +00:00
heap-utils.cc [heap] New live byte tracking. 2017-08-17 18:16:33 +00:00
heap-utils.h [heap] Exclude the owner of the linear allocation area from evacuation. 2016-11-03 12:13:23 +00:00
test-alloc.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-array-buffer-tracker.cc [heap] Cleanup cctests 2017-08-11 10:40:49 +00:00
test-compaction.cc [heap] Refactor object marking state (part 2). 2017-08-14 12:18:37 +00:00
test-concurrent-marking.cc [heap] Cleanup cctests 2017-08-11 10:40:49 +00:00
test-heap.cc Reland "[Compiler] Remove CompileDebugCode and EnsureBytecode and replace with Compile" 2017-08-17 13:21:44 +00:00
test-incremental-marking.cc [fullcodegen] Delete FullCodegen. 2017-08-11 11:50:05 +00:00
test-invalidated-slots.cc [heap] Cleanup cctests 2017-08-11 10:40:49 +00:00
test-lab.cc [heap] Cleanup cctests 2017-08-11 10:40:49 +00:00
test-mark-compact.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-page-promotion.cc [heap] Refactor object marking state (part 2). 2017-08-14 12:18:37 +00:00
test-spaces.cc [heap] New live byte tracking. 2017-08-17 18:16:33 +00:00