Index: src/heap/gc-tracer.cc |
diff --git a/src/heap/gc-tracer.cc b/src/heap/gc-tracer.cc |
index a0f1c464cc26f33d1dae45c36a1f5ac76a606a6c..7e81777038a5b6ed2d41199cce551b3151ebb4a7 100644 |
--- a/src/heap/gc-tracer.cc |
+++ b/src/heap/gc-tracer.cc |
@@ -418,5 +418,21 @@ intptr_t GCTracer::ScavengeSpeedInBytesPerMillisecond() const { |
return static_cast<intptr_t>(bytes / durations); |
} |
+ |
+ |
+intptr_t GCTracer::MaxMarkSweepSpeedInBytesPerMillisecond() const { |
+ intptr_t speed = 0; |
+ EventBuffer::const_iterator iter = mark_compactor_events_.begin(); |
+ while (iter != mark_compactor_events_.end()) { |
+ intptr_t bytes = iter->new_space_object_size; |
+ double duration = iter->end_time - iter->start_time; |
+ if (duration > 0) { |
+ intptr_t current_speed = static_cast<intptr_t>(bytes / duration); |
+ speed = Max(speed, current_speed); |
+ } |
+ ++iter; |
+ } |
+ return speed; |
+} |
} |
} // namespace v8::internal |