Chromium Code Reviews| 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) |