Commit d085eee2 authored by Michael Lippautz's avatar Michael Lippautz Committed by Commit Bot

[heap] Optimize young generation marking

- Only mark a single bit (grey)
- Increment live bytes after visiting, avoiding the map lookup for size
  in ObjectMarking

Raw speed improvements should be around 20%-30%.

Bug: chromium:651354
Change-Id: Ib58d1aee0b99d8e628a0191f90a2ffad9324b915
Reviewed-on: https://chromium-review.googlesource.com/509548
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45484}
parent 3d40a47a
......@@ -835,16 +835,15 @@ void IncrementalMarking::UpdateMarkingDequeAfterScavenge() {
// The object may be on a page that was moved in new space.
DCHECK(
Page::FromAddress(obj->address())->IsFlagSet(Page::SWEEP_TO_ITERATE));
return ObjectMarking::IsBlack<kAtomicity>(obj,
MarkingState::External(obj))
return ObjectMarking::IsGrey<kAtomicity>(obj, MarkingState::External(obj))
? obj
: nullptr;
} else {
// The object may be on a page that was moved from new to old space.
if (Page::FromAddress(obj->address())
->IsFlagSet(Page::SWEEP_TO_ITERATE)) {
return ObjectMarking::IsBlack<kAtomicity>(obj,
MarkingState::External(obj))
return ObjectMarking::IsGrey<kAtomicity>(obj,
MarkingState::External(obj))
? obj
: nullptr;
}
......
This diff is collapsed.
......@@ -218,6 +218,12 @@ class LiveObjectVisitor BASE_EMBEDDED {
bool VisitBlackObjects(MemoryChunk* chunk, const MarkingState& state,
Visitor* visitor, IterationMode iteration_mode);
// Visits grey objects on a Memorychunk. Is not allowed to fail visitation
// for an object.
template <class Visitor>
bool VisitGreyObjectsNoFail(MemoryChunk* chunk, const MarkingState& state,
Visitor* visitor, IterationMode iteration_mode);
private:
void RecomputeLiveBytes(MemoryChunk* chunk, const MarkingState& state);
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment