Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(54)

Unified Diff: tools/perf/measurements/power_many_tabs.py

Issue 178363005: [Telemetry] Measure power in tab_switching measurement (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix copyright year Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/perf/measurements/power_many_tabs.py
diff --git a/tools/perf/measurements/power_many_tabs.py b/tools/perf/measurements/power_many_tabs.py
new file mode 100644
index 0000000000000000000000000000000000000000..53c2f9bf48478addf7a730da99a61243fa23649c
--- /dev/null
+++ b/tools/perf/measurements/power_many_tabs.py
@@ -0,0 +1,47 @@
+# Copyright 2014 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.
+
+import time
+
+from metrics import power
+from metrics import speedindex
+from telemetry.core import util
+from telemetry.page import page_measurement
+
+
+class PowerManyTabs(page_measurement.PageMeasurement):
+ """Open several blank tabs, measure power after quiesencence."""
tonyg 2014/02/27 06:42:17 This shouldn't talk about blank tabs. The page set
jeremy 2014/02/27 13:41:12 Makes sense, added a five_blank_tabs pageset.
+ # Total number of tabs to open.
+ NUM_TABS = 5
tonyg 2014/02/27 06:42:17 Should this be equal to the number of pages in the
jeremy 2014/02/27 13:41:12 Done.
+
+ # Amount of time to measure power usage for, in seconds.
+ POWER_MEAUSUREMENT_TIME_S = 5
+
+ def __init__(self, action_name_to_run=''):
+ super(PowerManyTabs, self).__init__(
+ needs_browser_restart_after_each_run=True,
+ action_name_to_run=action_name_to_run)
+ self._power_metric = power.PowerMetric()
+
+ # This metric is not measured, we just use it's functionality to ascertain
+ # load completion.
tonyg 2014/02/27 06:42:17 Like we talked about offline, I recommend factorin
+ self._speedindex_metric = speedindex.SpeedIndexMetric()
+
+ def CustomizeBrowserOptions(self, options):
+ power.PowerMetric.CustomizeBrowserOptions(options)
+
+ def MeasurePage(self, page, tab, results):
+ for _ in xrange(PowerManyTabs.NUM_TABS - 1):
+ tab.browser.tabs.New()
+
+ def SpeedIndexIsFinished():
+ return self._speedindex_metric.IsFinished(tab)
jeremy 2014/02/25 15:05:00 I'm not comfortable using speedindex like this, do
qsr 2014/02/25 15:11:15 Any reason to use speed index instead of usual pag
+ util.WaitFor(SpeedIndexIsFinished, 60)
+
+ # Measure power after quiescence.
+ self._power_metric.Start(page, tab)
+ time.sleep(PowerManyTabs.POWER_MEAUSUREMENT_TIME_S)
+ self._power_metric.Stop(page, tab)
+
+ self._power_metric.AddResults(tab, results)

Powered by Google App Engine
This is Rietveld 408576698