DescriptionUse EmbedderHeapTracer instead of object grouping when embedder sets the heap tracer.
When the embedder sets the heap tracer, V8, during marking, will collect all reachable wrappers, and then ask embedder to trace its heap. The embedder is expected to call PersistentBase::RegisterExternalReference with all wrappers reachable from the given ones. This fixed point iteration happens in MarkCompact::ProcessEphemeralMarking.
For more efficient object visiting during marking, we need a special JS_API_OBJECT_TYPE (in tandem with already existing JS_SPECIAL_API_OBJECT_TYPE) and corresponding visitor (JSApiObjectVisitor).
BUG=chromium:468240
LOG=no
Committed: https://crrev.com/6d1f7282aff7cf332bbecf3f63e99b2e7716fa14
Cr-Commit-Position: refs/heads/master@{#35412}
Patch Set 1 #
Total comments: 8
Patch Set 2 : Incorporated Jochen's wonderful comments #
Total comments: 6
Patch Set 3 : Incorporated wonderful Hannes' comments #Patch Set 4 : Fixing bug - harmony weak collections can reach new wrappers, we need to process them #Patch Set 5 : Introduce JSApiObject type #Patch Set 6 : Rebase #Patch Set 7 : Another rebase #Patch Set 8 : Fix fast accessor tests #
Total comments: 2
Patch Set 9 : Rebase #Patch Set 10 : Improve WasConstructedFromApiFunction, cleanup #Patch Set 11 : Remove flag, presence of heap tracer is enough #
Total comments: 10
Patch Set 12 : Moved EmbedderHeapTracer to MarkCompactCollector #Patch Set 13 : Revert back to void pointers through the api #
Total comments: 2
Patch Set 14 : Move logic from heap to mark compact #
Messages
Total messages: 30 (10 generated)
|