Index: runtime/vm/pages.cc |
diff --git a/runtime/vm/pages.cc b/runtime/vm/pages.cc |
index 9768bc5f2510fad9045046e9a9564144c5968753..40c9c06883141fed0ae6aac3fa608a51e4f81a3b 100644 |
--- a/runtime/vm/pages.cc |
+++ b/runtime/vm/pages.cc |
@@ -849,6 +849,8 @@ void PageSpace::MarkSweep(bool invoke_api_callbacks) { |
Isolate* isolate = heap_->isolate(); |
ASSERT(isolate == Isolate::Current()); |
+ const int64_t pre_safe_point = OS::GetCurrentMonotonicMicros(); |
+ |
// Wait for pending tasks to complete and then account for the driver task. |
{ |
MonitorLocker locker(tasks_lock()); |
@@ -991,6 +993,7 @@ void PageSpace::MarkSweep(bool invoke_api_callbacks) { |
page_space_controller_.EvaluateGarbageCollection( |
usage_before, GetCurrentUsage(), start, end); |
+ heap_->RecordTime(kSafePoint, start - pre_safe_point); |
heap_->RecordTime(kMarkObjects, mid1 - start); |
heap_->RecordTime(kResetFreeLists, mid2 - mid1); |
heap_->RecordTime(kSweepPages, mid3 - mid2); |