| Index: runtime/vm/heap.cc
|
| diff --git a/runtime/vm/heap.cc b/runtime/vm/heap.cc
|
| index 4348d6b6e076c968ebd29567e87bd6173d19fd56..87a8522a73ead12405ebbfbad78c11468838ff13 100644
|
| --- a/runtime/vm/heap.cc
|
| +++ b/runtime/vm/heap.cc
|
| @@ -176,9 +176,11 @@ RawObject* Heap::FindOldObject(FindObjectVisitor* visitor) const {
|
|
|
|
|
| void Heap::CollectGarbage(Space space, ApiCallbacks api_callbacks) {
|
| + Isolate* isolate = Isolate::Current();
|
| bool invoke_api_callbacks = (api_callbacks == kInvokeApiCallbacks);
|
| switch (space) {
|
| case kNew: {
|
| + VMTagScope tagScope(isolate, VMTag::kGCNewSpaceTagId);
|
| RecordBeforeGC(kNew, kNewSpace);
|
| UpdateClassHeapStatsBeforeGC(kNew);
|
| new_space_->Scavenge(invoke_api_callbacks);
|
| @@ -192,6 +194,7 @@ void Heap::CollectGarbage(Space space, ApiCallbacks api_callbacks) {
|
| }
|
| case kOld:
|
| case kCode: {
|
| + VMTagScope tagScope(isolate, VMTag::kGCOldSpaceTagId);
|
| bool promotion_failure = new_space_->HadPromotionFailure();
|
| RecordBeforeGC(kOld, promotion_failure ? kPromotionFailure : kOldSpace);
|
| UpdateClassHeapStatsBeforeGC(kOld);
|
| @@ -229,16 +232,23 @@ void Heap::CollectGarbage(Space space) {
|
|
|
|
|
| void Heap::CollectAllGarbage() {
|
| - RecordBeforeGC(kNew, kFull);
|
| - UpdateClassHeapStatsBeforeGC(kNew);
|
| - new_space_->Scavenge(kInvokeApiCallbacks);
|
| - RecordAfterGC();
|
| - PrintStats();
|
| - RecordBeforeGC(kOld, kFull);
|
| - UpdateClassHeapStatsBeforeGC(kOld);
|
| - old_space_->MarkSweep(kInvokeApiCallbacks);
|
| - RecordAfterGC();
|
| - PrintStats();
|
| + Isolate* isolate = Isolate::Current();
|
| + {
|
| + VMTagScope tagScope(isolate, VMTag::kGCNewSpaceTagId);
|
| + RecordBeforeGC(kNew, kFull);
|
| + UpdateClassHeapStatsBeforeGC(kNew);
|
| + new_space_->Scavenge(kInvokeApiCallbacks);
|
| + RecordAfterGC();
|
| + PrintStats();
|
| + }
|
| + {
|
| + VMTagScope tagScope(isolate, VMTag::kGCOldSpaceTagId);
|
| + RecordBeforeGC(kOld, kFull);
|
| + UpdateClassHeapStatsBeforeGC(kOld);
|
| + old_space_->MarkSweep(kInvokeApiCallbacks);
|
| + RecordAfterGC();
|
| + PrintStats();
|
| + }
|
| }
|
|
|
|
|
|
|