PrintF("sweep=%.2f ", scopes_[Scope::MC_SWEEP]);
PrintF("sweepns=%.2f ", scopes_[Scope::MC_SWEEP_NEWSPACE]);
PrintF("sweepos=%.2f ", scopes_[Scope::MC_SWEEP_OLDSPACE]);
+ PrintF("sweepcode=%.2f ", scopes_[Scope::MC_SWEEP_CODE]);
+ PrintF("sweepcell=%.2f ", scopes_[Scope::MC_SWEEP_CELL]);
+ PrintF("sweepmap=%.2f ", scopes_[Scope::MC_SWEEP_MAP]);
PrintF("evacuate=%.1f ", scopes_[Scope::MC_EVACUATE_PAGES]);
PrintF("new_new=%.1f ", scopes_[Scope::MC_UPDATE_NEW_TO_NEW_POINTERS]);
PrintF("root_new=%.1f ", scopes_[Scope::MC_UPDATE_ROOT_TO_NEW_POINTERS]);
}
}
RemoveDeadInvalidatedCode();
- SweepSpace(heap()->code_space(), PRECISE);
- SweepSpace(heap()->cell_space(), PRECISE);
- SweepSpace(heap()->property_cell_space(), PRECISE);
+ { GCTracer::Scope sweep_scope(tracer_, GCTracer::Scope::MC_SWEEP_CODE);
+ SweepSpace(heap()->code_space(), PRECISE);
+ }
+
+ { GCTracer::Scope sweep_scope(tracer_, GCTracer::Scope::MC_SWEEP_CELL);
+ SweepSpace(heap()->cell_space(), PRECISE);
+ SweepSpace(heap()->property_cell_space(), PRECISE);
+ }
EvacuateNewSpaceAndCandidates();
// ClearNonLiveTransitions depends on precise sweeping of map space to
// detect whether unmarked map became dead in this collection or in one
// of the previous ones.
- SweepSpace(heap()->map_space(), PRECISE);
+ { GCTracer::Scope sweep_scope(tracer_, GCTracer::Scope::MC_SWEEP_MAP);
+ SweepSpace(heap()->map_space(), PRECISE);
+ }
// Deallocate unmarked objects and clear marked bits for marked objects.
heap_->lo_space()->FreeUnmarkedObjects();