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

Side by Side Diff: tools/perf/benchmarks/peacekeeper.py

Issue 27486002: Cleanup of page_measurement_results object (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: keep on trying Created 7 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « tools/perf/benchmarks/dom_perf.py ('k') | tools/perf/measurements/page_cycler_unittest.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2013 The Chromium Authors. All rights reserved. 1 # Copyright 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """PeaceKeeper benchmark suite. 5 """PeaceKeeper benchmark suite.
6 6
7 Peacekeeper measures browser's performance by testing its JavaScript 7 Peacekeeper measures browser's performance by testing its JavaScript
8 functionality. JavaScript is a widely used programming language used in the 8 functionality. JavaScript is a widely used programming language used in the
9 creation of modern websites to provide features such as animation, navigation, 9 creation of modern websites to provide features such as animation, navigation,
10 forms and other common requirements. By measuring a browser's ability to handle 10 forms and other common requirements. By measuring a browser's ability to handle
11 commonly used JavaScript functions Peacekeeper can evaluate its performance. 11 commonly used JavaScript functions Peacekeeper can evaluate its performance.
12 Peacekeeper scores are measured in operations per second or rendered frames per 12 Peacekeeper scores are measured in operations per second or rendered frames per
13 second depending on the test. Final Score is computed by calculating geometric 13 second depending on the test. Final Score is computed by calculating geometric
14 mean of individual tests scores. 14 mean of individual tests scores.
15 """ 15 """
16 16
17 import os 17 import os
18 18
19 from metrics import statistics 19 from metrics import statistics
20 from telemetry import test 20 from telemetry import test
21 from telemetry.page import page_measurement 21 from telemetry.page import page_measurement
22 from telemetry.page import page_set 22 from telemetry.page import page_set
23 23 from telemetry.value import merge_values
24 24
25 class PeaceKeeperMeasurement(page_measurement.PageMeasurement): 25 class PeaceKeeperMeasurement(page_measurement.PageMeasurement):
26 26
27 def WillNavigateToPage(self, page, tab): 27 def WillNavigateToPage(self, page, tab):
28 page.script_to_evaluate_on_commit = """ 28 page.script_to_evaluate_on_commit = """
29 var __results = {}; 29 var __results = {};
30 var _done = false; 30 var _done = false;
31 var __real_log = window.console.log; 31 var __real_log = window.console.log;
32 var test_frame = null; 32 var test_frame = null;
33 var benchmark = null; 33 var benchmark = null;
(...skipping 19 matching lines...) Expand all
53 53
54 def MeasurePage(self, _, tab, results): 54 def MeasurePage(self, _, tab, results):
55 tab.WaitForJavaScriptExpression('_done', 600) 55 tab.WaitForJavaScriptExpression('_done', 600)
56 result = tab.EvaluateJavaScript('__results') 56 result = tab.EvaluateJavaScript('__results')
57 57
58 results.Add('Score', 'score', int(result['score']), result['test'], 58 results.Add('Score', 'score', int(result['score']), result['test'],
59 'unimportant') 59 'unimportant')
60 60
61 def DidRunTest(self, browser, results): 61 def DidRunTest(self, browser, results):
62 # Calculate geometric mean as the total for the combined tests. 62 # Calculate geometric mean as the total for the combined tests.
63 scores = [] 63 combined = merge_values.MergeLikeValuesFromDifferentPages(
64 for result in results.page_results: 64 results.all_page_specific_values,
65 scores.append(result['Score'].output_value) 65 group_by_name_suffix=True)
66 total = statistics.GeometricMean(scores) 66 combined_score = [x for x in combined if x.name == 'Score'][0]
67 total = statistics.GeometricMean(combined_score.values)
67 results.AddSummary('Score', 'score', total, 'Total') 68 results.AddSummary('Score', 'score', total, 'Total')
68 69
69 70
70 class PeaceKeeperBenchmark(test.Test): 71 class PeaceKeeperBenchmark(test.Test):
71 """A base class for Peackeeper benchmarks.""" 72 """A base class for Peackeeper benchmarks."""
72 test = PeaceKeeperMeasurement 73 test = PeaceKeeperMeasurement
73 74
74 def CreatePageSet(self, options): 75 def CreatePageSet(self, options):
75 """Makes a PageSet for PeaceKeeper benchmarks.""" 76 """Makes a PageSet for PeaceKeeper benchmarks."""
76 # Subclasses are expected to define a class member called query_param. 77 # Subclasses are expected to define a class member called query_param.
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 tag = 'html5' 248 tag = 'html5'
248 test_param = ['webglSphere', 249 test_param = ['webglSphere',
249 'gamingSpitfire', 250 'gamingSpitfire',
250 'videoCodecH264', 251 'videoCodecH264',
251 'videoCodecTheora', 252 'videoCodecTheora',
252 'videoCodecWebM', 253 'videoCodecWebM',
253 'videoPosterSupport', 254 'videoPosterSupport',
254 'workerContrast01', 255 'workerContrast01',
255 'workerContrast02' 256 'workerContrast02'
256 ] 257 ]
257
OLDNEW
« no previous file with comments | « tools/perf/benchmarks/dom_perf.py ('k') | tools/perf/measurements/page_cycler_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698