Index: tools/perf/benchmarks/speedometer.py |
diff --git a/tools/perf/benchmarks/speedometer.py b/tools/perf/benchmarks/speedometer.py |
index 9ee9ac2e3f9b48461d96455a0f1493d0700a7070..ceb06a0e7e9c8ed3b53ed7e84622803c2bba3bee 100644 |
--- a/tools/perf/benchmarks/speedometer.py |
+++ b/tools/perf/benchmarks/speedometer.py |
@@ -25,16 +25,46 @@ from telemetry.value import list_of_scalar_values |
class SpeedometerMeasurement(page_test.PageTest): |
+ enabled_suites = [ |
+ 'VanillaJS-TodoMVC', |
+ 'EmberJS-TodoMVC', |
+ 'BackboneJS-TodoMVC', |
+ 'jQuery-TodoMVC', |
+ 'AngularJS-TodoMVC', |
+ 'React-TodoMVC', |
+ 'FlightJS-TodoMVC' |
+ ] |
def ValidateAndMeasurePage(self, page, tab, results): |
tab.WaitForDocumentReadyStateToBeComplete() |
- tab.ExecuteJavaScript('benchmarkClient.iterationCount = 10; startTest();') |
+ tab.ExecuteJavaScript(""" |
+ // Store all the results in the benchmarkClient |
+ benchmarkClient._measuredValues = [] |
+ benchmarkClient.didRunSuites = function (measuredValues) { |
tonyg
2014/08/25 22:32:13
uber-nit: no space after "function"
fmeawad
2014/08/25 22:49:24
Done.
|
+ benchmarkClient._measuredValues.push(measuredValues); |
+ benchmarkClient._timeValues.push(measuredValues.total); |
+ }; |
+ benchmarkClient.iterationCount = 10; |
+ startTest(); |
+ """) |
tab.WaitForJavaScriptExpression( |
'benchmarkClient._finishedTestCount == benchmarkClient.testsCount', 600) |
results.AddValue(list_of_scalar_values.ListOfScalarValues( |
page, 'Total', 'ms', |
tab.EvaluateJavaScript('benchmarkClient._timeValues'))) |
tonyg
2014/08/25 22:32:13
There's an optional "important" arg. I forget the
fmeawad
2014/08/25 22:49:24
Default was true. Added in both to make it more re
|
+ # Extract the timings for each suite |
+ for suite_name in self.enabled_suites: |
+ results.AddValue(list_of_scalar_values.ListOfScalarValues( |
+ page, suite_name, 'ms', |
+ tab.EvaluateJavaScript(""" |
+ var suite_times = []; |
+ for(var i = 0; i < benchmarkClient.iterationCount; i++) { |
+ suite_times.push( |
+ benchmarkClient._measuredValues[i].tests['%s'].total); |
+ }; |
+ suite_times; |
+ """ % suite_name))) |
@benchmark.Disabled('android') # Times out |
class Speedometer(benchmark.Benchmark): |