0400fc2049
Now a descriptor array tracks the number of descriptors that were already marked. The marking visitor of a map only marks the subset of the descriptors that it needs and that are not already marked. If a descriptor array is shared between M maps and has N descriptos, then the number of marking operations is reduced from O(M*N) to O(N). This patch also adds a marking barrier for descriptors. The marked descriptor counter in a descriptor array is not cleared after mark-compact GC. Instead, it embeds two bits from the global mark-compact epoch counter and is considered 0 if the bits do not match the current value of the global epoch counter. Bug: v8:8486 Change-Id: I2a7822a6833f3143e1d351e5e4819c2ef2c07fb0 Reviewed-on: https://chromium-review.googlesource.com/c/1382746 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#58372} |
||
---|---|---|
.. | ||
heap-tester.h | ||
heap-utils.cc | ||
heap-utils.h | ||
test-alloc.cc | ||
test-array-buffer-tracker.cc | ||
test-compaction.cc | ||
test-concurrent-marking.cc | ||
test-embedder-tracing.cc | ||
test-external-string-tracker.cc | ||
test-heap.cc | ||
test-incremental-marking.cc | ||
test-invalidated-slots.cc | ||
test-lab.cc | ||
test-mark-compact.cc | ||
test-page-promotion.cc | ||
test-spaces.cc | ||
test-unmapper.cc | ||
test-weak-references.cc |