v8/test/cctest/heap
Ulan Degenbaev e27e6fd683 [heap] Implement per-context marking worklist draining
This changes the marking worklist draining for the main thread
marker and the concurrent marker to use the following algorithm in
per-context mode:
1) Pop an object from the marking worklist.
2) Try to infer the native context that owns the objects.
   This is done using a new NativeContextInferrer class.
3) If the inference is successful, then change the active marking
   worklist to the worklist of the inferred native context.
4) Otherwise, keep the current active marking worklist.
5) Visit the object. Newly discovered objects will be pushed
   onto the active marking worklist.
6) Account the object size for the native context corresponding
   to the active marking worklist.
   This is done using a new NativeContextStats class.

The main property of the algorithm is that each object for which
we couldn't infer the native context is either attributed to
the native context retaining it or is not attributed to any native
context.

Bug: chromium:973627

Change-Id: Ide4ab992275d115279f971d89ace657f4c05e176
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1981491
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65663}
2020-01-09 14:14:41 +00:00
..
heap-tester.h [heap] Add flag to promote young objects in MC 2019-10-17 13:38:21 +00:00
heap-utils.cc [test] Make full space simulation work with --no-inline-new. 2019-10-29 13:28:46 +00:00
heap-utils.h [test] Make full space simulation work with --no-inline-new. 2019-10-29 13:28:46 +00:00
test-alloc.cc Revert "[heap] Remove ClearRecordedSlots" 2019-08-22 12:06:36 +00:00
test-array-buffer-tracker.cc [api] Deprecate [Shared]ArrayBuffer::Externalize/GetContents and constructors 2019-10-29 22:01:54 +00:00
test-compaction.cc [heap] Add flag to promote young objects in MC 2019-10-17 13:38:21 +00:00
test-concurrent-marking.cc [heap] Refactor marking worklists 2019-12-11 16:46:40 +00:00
test-embedder-tracing.cc [heap] Decouple the lifetime of a TracedNode from the target object 2019-12-05 12:58:29 +00:00
test-external-string-tracker.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-heap.cc [heap] Perform GCs on v8::BackingStore allocation 2019-12-17 14:13:37 +00:00
test-incremental-marking.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-invalidated-slots.cc [heap] Insert directly into RememberedSet and remove StoreBuffer 2019-10-07 10:19:53 +00:00
test-iterators.cc [roheap] Move read_only_heap() from heap to isolate 2019-07-05 14:25:00 +00:00
test-lab.cc [torque] Use generated instance types, part 1 2019-10-28 18:30:31 +00:00
test-mark-compact.cc [torque] Use generated instance types, part 1 2019-10-28 18:30:31 +00:00
test-memory-measurement.cc [heap] Implement per-context marking worklist draining 2020-01-09 14:14:41 +00:00
test-page-promotion.cc [heap] Add flag to promote young objects in MC 2019-10-17 13:38:21 +00:00
test-spaces.cc [heap] Add base class for LargeObjectSpaces 2019-10-25 09:22:57 +00:00
test-unmapper.cc [API] Remove deprecated tasks API 2020-01-08 13:54:45 +00:00
test-weak-references.cc [cleanup] Refactor Smi::kZero to Smi::zero() 2019-11-15 11:26:48 +00:00