| Index: src/heap/gc-tracer.cc
 | 
| diff --git a/src/heap/gc-tracer.cc b/src/heap/gc-tracer.cc
 | 
| index 927915d7554bae15b4e26c43b997734824f8c231..815baa440c308bf4fd619929e74a09db7fa11cf3 100644
 | 
| --- a/src/heap/gc-tracer.cc
 | 
| +++ b/src/heap/gc-tracer.cc
 | 
| @@ -610,7 +610,7 @@ size_t GCTracer::NewSpaceAllocatedBytesInLast(double time_ms) const {
 | 
|      ++iter;
 | 
|    }
 | 
|  
 | 
| -  if (durations < time_ms) return 0;
 | 
| +  if (durations == 0.0) return 0;
 | 
|  
 | 
|    bytes = static_cast<size_t>(bytes * (time_ms / durations) + 0.5);
 | 
|    // Return at least 1 since 0 means "no data".
 | 
| @@ -618,6 +618,15 @@ size_t GCTracer::NewSpaceAllocatedBytesInLast(double time_ms) const {
 | 
|  }
 | 
|  
 | 
|  
 | 
| +size_t GCTracer::CurrentNewSpaceAllocationThroughputInBytesPerMillisecond()
 | 
| +    const {
 | 
| +  static const double kThroughputTimeFrame = 5000;
 | 
| +  size_t allocated_bytes = NewSpaceAllocatedBytesInLast(kThroughputTimeFrame);
 | 
| +  if (allocated_bytes == 0) return 0;
 | 
| +  return static_cast<size_t>((allocated_bytes / kThroughputTimeFrame) + 1);
 | 
| +}
 | 
| +
 | 
| +
 | 
|  double GCTracer::ContextDisposalRateInMilliseconds() const {
 | 
|    if (context_disposal_events_.size() < kRingBufferMaxSize) return 0.0;
 | 
|  
 | 
| 
 |