v8/test/unittests/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
..
bitmap-unittest.cc [heap] Fix mark bits for partially compacted pages. 2015-10-08 13:49:30 +00:00
embedder-tracing-unittest.cc Reland of "[heap] Report wrappers after processing the marking deque incrementally" 2017-01-02 13:06:11 +00:00
gc-idle-time-handler-unittest.cc [heap] Avoid full GC for large heaps. 2017-06-30 09:43:27 +00:00
gc-tracer-unittest.cc Fix more -Wsign-compare warnings in heap, mips, base, etc. 2016-11-11 14:56:10 +00:00
heap-unittest.cc [heap] Adjust upper limit in ComputeMaxSemiSpaceSize. 2017-08-09 13:06:41 +00:00
item-parallel-job-unittest.cc [heap] Fix ItemParallelJobTest.DistributeItemsMultipleTasks 2017-05-17 08:31:04 +00:00
marking-unittest.cc [heap] Move AccessMode out from MarkBit into globals 2017-06-13 17:49:17 +00:00
memory-reducer-unittest.cc [heap] Reland "Add a guard for restarting the memory reducer after mark-compact." 2016-11-18 13:50:22 +00:00
scavenge-job-unittest.cc Represent speed in GCTracer functions as double instead of int. 2016-03-29 17:34:41 +00:00
slot-set-unittest.cc Fix unused lambda captures. 2017-01-19 21:34:00 +00:00
spaces-unittest.cc [heap] MinorMC: Evacuation for young generation 2017-05-03 21:31:06 +00:00
unmapper-unittest.cc [heap] New live byte tracking. 2017-08-17 18:16:33 +00:00
worklist-unittest.cc [heap] Templatize worklist for arbitrary entry types 2017-07-05 10:13:33 +00:00