summaryrefslogtreecommitdiffstats
path: root/remoting/base
diff options
context:
space:
mode:
authornewt <newt@chromium.org>2016-03-22 19:56:33 -0700
committerCommit bot <commit-bot@chromium.org>2016-03-23 02:58:42 +0000
commit53300ca20e00981cc46a30395a635246d154ddd3 (patch)
tree625a9c68ea0ff3c2d4fc7adf167f3b610057840c /remoting/base
parent24994728bb74a3ef84b84db0c6d9f45e5d410274 (diff)
downloadchromium_src-53300ca20e00981cc46a30395a635246d154ddd3.zip
chromium_src-53300ca20e00981cc46a30395a635246d154ddd3.tar.gz
chromium_src-53300ca20e00981cc46a30395a635246d154ddd3.tar.bz2
Revert of Show max latency on client's status bar (patchset #8 id:140001 of https://codereview.chromium.org/1811833002/ )
Reason for revert: Caused compile failure on 64-bit Android bots. See crbug.com/597155 Original issue's description: > Show max latency on client's status bar > > Will later also consider storing max latency data in server > > BUG=560950 > > Committed: https://crrev.com/e37a467453f3814a9ecb0eb6769bd7c58b61cbae > Cr-Commit-Position: refs/heads/master@{#382663} TBR=sergeyu@chromium.org,kelvinp@chromium.org,dbeam@chromium.org,yuweih@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=560950 Review URL: https://codereview.chromium.org/1817093005 Cr-Commit-Position: refs/heads/master@{#382777}
Diffstat (limited to 'remoting/base')
-rw-r--r--remoting/base/BUILD.gn2
-rw-r--r--remoting/base/running_average.cc (renamed from remoting/base/running_samples.cc)26
-rw-r--r--remoting/base/running_average.h (renamed from remoting/base/running_samples.h)30
-rw-r--r--remoting/base/running_average_unittest.cc60
-rw-r--r--remoting/base/running_samples_unittest.cc92
5 files changed, 81 insertions, 129 deletions
diff --git a/remoting/base/BUILD.gn b/remoting/base/BUILD.gn
index 23dcad1..97dc3aa 100644
--- a/remoting/base/BUILD.gn
+++ b/remoting/base/BUILD.gn
@@ -66,7 +66,7 @@ source_set("unit_tests") {
"rate_counter_unittest.cc",
"rsa_key_pair_unittest.cc",
"run_all_unittests.cc",
- "running_samples_unittest.cc",
+ "running_average_unittest.cc",
"test_rsa_key_pair.h",
"typed_buffer_unittest.cc",
"util_unittest.cc",
diff --git a/remoting/base/running_samples.cc b/remoting/base/running_average.cc
index d76a1a6..5e24c0d 100644
--- a/remoting/base/running_samples.cc
+++ b/remoting/base/running_average.cc
@@ -1,23 +1,22 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 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_samples.h"
-
-#include <algorithm>
+#include "remoting/base/running_average.h"
#include "base/logging.h"
namespace remoting {
-RunningSamples::RunningSamples(int window_size)
- : window_size_(window_size) {
+RunningAverage::RunningAverage(int window_size)
+ : window_size_(window_size),
+ sum_(0) {
DCHECK_GT(window_size, 0);
}
-RunningSamples::~RunningSamples() {}
+RunningAverage::~RunningAverage() {}
-void RunningSamples::Record(int64_t value) {
+void RunningAverage::Record(int64_t value) {
DCHECK(thread_checker_.CalledOnValidThread());
data_points_.push_back(value);
@@ -29,7 +28,7 @@ void RunningSamples::Record(int64_t value) {
}
}
-double RunningSamples::Average() const {
+double RunningAverage::Average() {
DCHECK(thread_checker_.CalledOnValidThread());
if (data_points_.empty())
@@ -37,13 +36,4 @@ double RunningSamples::Average() const {
return static_cast<double>(sum_) / data_points_.size();
}
-int64_t RunningSamples::Max() const {
- DCHECK(thread_checker_.CalledOnValidThread());
-
- if (data_points_.empty())
- return 0;
-
- return *std::max_element(data_points_.begin(), data_points_.end());
-}
-
} // namespace remoting
diff --git a/remoting/base/running_samples.h b/remoting/base/running_average.h
index 3f5078d..e41234e 100644
--- a/remoting/base/running_samples.h
+++ b/remoting/base/running_average.h
@@ -1,9 +1,9 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 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.
-#ifndef REMOTING_BASE_RUNNING_SAMPLES_H_
-#define REMOTING_BASE_RUNNING_SAMPLES_H_
+#ifndef REMOTING_BASE_RUNNING_AVERAGE_H_
+#define REMOTING_BASE_RUNNING_AVERAGE_H_
#include <stddef.h>
#include <stdint.h>
@@ -15,26 +15,20 @@
namespace remoting {
-// Calculates the maximum or average of the most recent N recorded samples.
+// Calculates the average of the most recent N recorded samples.
// This is typically used to smooth out random variation in point samples
// over bandwidth, frame rate, etc.
-class RunningSamples {
+class RunningAverage {
public:
- // Constructs a running sample helper that stores |window_size| most
- // recent samples.
- explicit RunningSamples(int window_size);
- virtual ~RunningSamples();
+ // Constructs a helper to average over the |window_size| most recent samples.
+ explicit RunningAverage(int window_size);
+ virtual ~RunningAverage();
// Records a point sample.
void Record(int64_t value);
// Returns the average over up to |window_size| of the most recent samples.
- // 0 if no sample available
- double Average() const;
-
- // Returns the max over up to |window_size| of the most recent samples.
- // 0 if no sample available
- int64_t Max() const;
+ double Average();
private:
// Stores the desired window size, as size_t to avoid casting when comparing
@@ -45,13 +39,13 @@ class RunningSamples {
std::deque<int64_t> data_points_;
// Holds the sum of the samples in |data_points_|.
- int64_t sum_ = 0;
+ int64_t sum_;
base::ThreadChecker thread_checker_;
- DISALLOW_COPY_AND_ASSIGN(RunningSamples);
+ DISALLOW_COPY_AND_ASSIGN(RunningAverage);
};
} // namespace remoting
-#endif // REMOTING_BASE_RUNNING_SAMPLES_H_
+#endif // REMOTING_BASE_RUNNING_AVERAGE_H_
diff --git a/remoting/base/running_average_unittest.cc b/remoting/base/running_average_unittest.cc
new file mode 100644
index 0000000..e731573
--- /dev/null
+++ b/remoting/base/running_average_unittest.cc
@@ -0,0 +1,60 @@
+// Copyright 2013 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 <stddef.h>
+#include <stdint.h>
+
+#include "base/macros.h"
+#include "remoting/base/running_average.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace remoting {
+
+static const int64_t kTestValues[] = { 10, 20, 30, 10, 25, 16, 15 };
+
+// Average across a single element, i.e. just return the most recent.
+TEST(RunningAverageTest, OneElementWindow) {
+ RunningAverage running_average(1);
+ EXPECT_EQ(0, running_average.Average());
+
+ for (size_t i = 0; i < arraysize(kTestValues); ++i) {
+ running_average.Record(kTestValues[i]);
+ EXPECT_EQ(static_cast<double>(kTestValues[i]), running_average.Average());
+ }
+}
+
+// Average the two most recent elements.
+TEST(RunningAverageTest, TwoElementWindow) {
+ RunningAverage running_average(2);
+ EXPECT_EQ(0, running_average.Average());
+
+ for (size_t i = 0; i < arraysize(kTestValues); ++i) {
+ running_average.Record(kTestValues[i]);
+
+ double expected = kTestValues[i];
+ if (i > 0)
+ expected = (expected + kTestValues[i-1]) / 2;
+
+ EXPECT_EQ(expected, running_average.Average());
+ }
+}
+
+// Average across all the elements if the window size exceeds the element count.
+TEST(RunningAverageTest, LongWindow) {
+ RunningAverage running_average(arraysize(kTestValues) + 1);
+ EXPECT_EQ(0, running_average.Average());
+
+ for (size_t i = 0; i < arraysize(kTestValues); ++i) {
+ running_average.Record(kTestValues[i]);
+
+ double expected = 0.0;
+ for (size_t j = 0; j <= i; ++j)
+ expected += kTestValues[j];
+ expected /= i + 1;
+
+ EXPECT_EQ(expected, running_average.Average());
+ }
+}
+
+} // namespace remoting
diff --git a/remoting/base/running_samples_unittest.cc b/remoting/base/running_samples_unittest.cc
deleted file mode 100644
index 2c2c7f5..0000000
--- a/remoting/base/running_samples_unittest.cc
+++ /dev/null
@@ -1,92 +0,0 @@
-// Copyright 2013 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 <stddef.h>
-#include <stdint.h>
-
-#include "base/macros.h"
-#include "remoting/base/running_samples.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace remoting {
-
-typedef void (*TestFunction)(size_t i, RunningSamples& samples);
-
-static const int64_t kTestValues[] = { 10, 20, 30, 10, 25, 16, 15 };
-
-// Test framework that verifies average() and max() at beginning, iterates
-// through all elements and meanwhile calls your own test function
-static void TestFramework(int windowSize, TestFunction testFn) {
- RunningSamples samples(windowSize);
- EXPECT_EQ(0, samples.Average());
- EXPECT_EQ(0, samples.Max());
-
- for (size_t i = 0; i < arraysize(kTestValues); ++i) {
- samples.Record(kTestValues[i]);
- testFn(i, samples);
- }
-}
-
-// Average across a single element, i.e. just return the most recent.
-TEST(RunningSamplesTest, AverageOneElementWindow) {
- TestFramework(1, [](size_t i, RunningSamples& samples) {
- EXPECT_EQ(static_cast<double>(kTestValues[i]), samples.Average());
- });
-}
-
-// Average the two most recent elements.
-TEST(RunningSamplesTest, AverageTwoElementWindow) {
- TestFramework(2, [](size_t i, RunningSamples& samples) {
- double expected = kTestValues[i];
- if (i > 0)
- expected = (expected + kTestValues[i-1]) / 2;
-
- EXPECT_EQ(expected, samples.Average());
- });
-}
-
-// Average across all the elements if the window size exceeds the element count.
-TEST(RunningSamplesTest, AverageLongWindow) {
- TestFramework(arraysize(kTestValues) + 1,
- [](size_t i, RunningSamples& samples) {
- double expected = 0.0;
- for (size_t j = 0; j <= i; ++j)
- expected += kTestValues[j];
- expected /= i + 1;
-
- EXPECT_EQ(expected, samples.Average());
- });
-}
-
-// Max of a single element, i.e. just return the most recent.
-TEST(RunningSamplesTest, MaxOneElementWindow) {
- TestFramework(1, [](size_t i, RunningSamples& samples) {
- EXPECT_EQ(static_cast<double>(kTestValues[i]), samples.Max());
- });
-}
-
-// Max of the two most recent elements.
-TEST(RunningSamplesTest, MaxTwoElementWindow) {
- TestFramework(2, [](size_t i, RunningSamples& samples) {
- double expected = kTestValues[i];
- if (i > 0)
- expected = expected > kTestValues[i-1] ? expected : kTestValues[i-1];
-
- EXPECT_EQ(expected, samples.Max());
- });
-}
-
-// Max of all the elements if the window size exceeds the element count.
-TEST(RunningSamplesTest, MaxLongWindow) {
- TestFramework(arraysize(kTestValues) + 1,
- [](size_t i, RunningSamples& samples) {
- int64_t expected = -1;
- for (size_t j = 0; j <= i; ++j)
- expected = expected > kTestValues[j] ? expected : kTestValues[j];
-
- EXPECT_EQ(expected, samples.Max());
- });
-}
-
-} // namespace remoting \ No newline at end of file