Commit b2f56b85 authored by mlippautz's avatar mlippautz Committed by Commit bot

GC: Add tracing event for rescanning large objects on newspace evacuation

BUG=

Review URL: https://codereview.chromium.org/1269753002

Cr-Commit-Position: refs/heads/master@{#29945}
parent 029c8131
...@@ -426,6 +426,8 @@ void GCTracer::PrintNVP() const { ...@@ -426,6 +426,8 @@ void GCTracer::PrintNVP() const {
PrintF("sweepcode=%.2f ", current_.scopes[Scope::MC_SWEEP_CODE]); PrintF("sweepcode=%.2f ", current_.scopes[Scope::MC_SWEEP_CODE]);
PrintF("sweepcell=%.2f ", current_.scopes[Scope::MC_SWEEP_CELL]); PrintF("sweepcell=%.2f ", current_.scopes[Scope::MC_SWEEP_CELL]);
PrintF("sweepmap=%.2f ", current_.scopes[Scope::MC_SWEEP_MAP]); PrintF("sweepmap=%.2f ", current_.scopes[Scope::MC_SWEEP_MAP]);
PrintF("rescan_lo=%.2f ",
current_.scopes[Scope::MC_RESCAN_LARGE_OBJECTS]);
PrintF("evacuate=%.1f ", current_.scopes[Scope::MC_EVACUATE_PAGES]); PrintF("evacuate=%.1f ", current_.scopes[Scope::MC_EVACUATE_PAGES]);
PrintF("new_new=%.1f ", PrintF("new_new=%.1f ",
current_.scopes[Scope::MC_UPDATE_NEW_TO_NEW_POINTERS]); current_.scopes[Scope::MC_UPDATE_NEW_TO_NEW_POINTERS]);
......
...@@ -104,6 +104,7 @@ class GCTracer { ...@@ -104,6 +104,7 @@ class GCTracer {
MC_SWEEP_CODE, MC_SWEEP_CODE,
MC_SWEEP_CELL, MC_SWEEP_CELL,
MC_SWEEP_MAP, MC_SWEEP_MAP,
MC_RESCAN_LARGE_OBJECTS,
MC_EVACUATE_PAGES, MC_EVACUATE_PAGES,
MC_UPDATE_NEW_TO_NEW_POINTERS, MC_UPDATE_NEW_TO_NEW_POINTERS,
MC_UPDATE_ROOT_TO_NEW_POINTERS, MC_UPDATE_ROOT_TO_NEW_POINTERS,
......
...@@ -3695,6 +3695,8 @@ void MarkCompactCollector::EvacuateNewSpaceAndCandidates() { ...@@ -3695,6 +3695,8 @@ void MarkCompactCollector::EvacuateNewSpaceAndCandidates() {
} }
if (compacting_ && was_marked_incrementally_) { if (compacting_ && was_marked_incrementally_) {
GCTracer::Scope gc_scope(heap()->tracer(),
GCTracer::Scope::MC_RESCAN_LARGE_OBJECTS);
// It's difficult to filter out slots recorded for large objects. // It's difficult to filter out slots recorded for large objects.
LargeObjectIterator it(heap_->lo_space()); LargeObjectIterator it(heap_->lo_space());
for (HeapObject* obj = it.Next(); obj != NULL; obj = it.Next()) { for (HeapObject* obj = it.Next(); obj != NULL; obj = it.Next()) {
......
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