Chromium Code Reviews| Index: remoting/base/running_samples.cc |
| diff --git a/remoting/base/running_average.cc b/remoting/base/running_samples.cc |
| similarity index 50% |
| rename from remoting/base/running_average.cc |
| rename to remoting/base/running_samples.cc |
| index 5e24c0de3a95672c1e4f8d4c5b67cf5b11db81ba..352d6a6fe4ce38cd767df9a1f24f6e100d7878e7 100644 |
| --- a/remoting/base/running_average.cc |
| +++ b/remoting/base/running_samples.cc |
| @@ -1,22 +1,23 @@ |
| -// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| +// Copyright 2016 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| -#include "remoting/base/running_average.h" |
| +#include "remoting/base/running_samples.h" |
| + |
| +#include <algorithm> |
| #include "base/logging.h" |
| namespace remoting { |
| -RunningAverage::RunningAverage(int window_size) |
| - : window_size_(window_size), |
| - sum_(0) { |
| +RunningSamples::RunningSamples(int window_size) |
| + : window_size_(window_size) { |
| DCHECK_GT(window_size, 0); |
| } |
| -RunningAverage::~RunningAverage() {} |
| +RunningSamples::~RunningSamples() {} |
| -void RunningAverage::Record(int64_t value) { |
| +void RunningSamples::Record(int64_t value) { |
| DCHECK(thread_checker_.CalledOnValidThread()); |
| data_points_.push_back(value); |
| @@ -28,7 +29,7 @@ void RunningAverage::Record(int64_t value) { |
| } |
| } |
| -double RunningAverage::Average() { |
| +double RunningSamples::Average() const { |
| DCHECK(thread_checker_.CalledOnValidThread()); |
| if (data_points_.empty()) |
| @@ -36,4 +37,14 @@ double RunningAverage::Average() { |
| return static_cast<double>(sum_) / data_points_.size(); |
| } |
| +int64_t RunningSamples::Max() const { |
| + DCHECK(thread_checker_.CalledOnValidThread()); |
| + |
| + if (data_points_.empty()) |
| + return 0; |
| + |
| + // O(n*w), may be improved. |
|
Sergey Ulanov
2016/03/21 19:35:06
What is w? I don't think you really need this comm
Yuwei
2016/03/21 19:59:40
w just means window size so finding max after havi
Sergey Ulanov
2016/03/21 23:54:52
Not sure why it's O(n*w) and not O(w). There are l
|
| + return *std::max_element(data_points_.begin(), data_points_.end()); |
| +} |
| + |
| } // namespace remoting |