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

Side by Side Diff: tools/perf/perf_tools/sunspider.py

Issue 15463003: [Telemetry] Utilize CreatePageSet for benchmarks with one page set. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Make file_path required Created 7 years, 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « tools/perf/perf_tools/spaceport.py ('k') | tools/telemetry/telemetry/page/page_set.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 (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 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 """Runs Apple's SunSpider JavaScript benchmark."""
6
5 import collections 7 import collections
6 import json 8 import json
9 import os
7 10
8 from telemetry.core import util 11 from telemetry.core import util
9 from telemetry.page import page_measurement 12 from telemetry.page import page_measurement
10 13 from telemetry.page import page_set
11 14
12 class SunSpiderMeasurement(page_measurement.PageMeasurement): 15 class SunSpiderMeasurement(page_measurement.PageMeasurement):
16 def CreatePageSet(self, options):
17 return page_set.PageSet.FromDict({
18 'serving_dirs': ['../../../chrome/test/data/sunspider/'],
19 'pages': [
20 { 'url': 'file:///../../../chrome/test/data/sunspider/'
21 'sunspider-1.0/driver.html' }
22 ]
23 }, os.path.abspath(__file__))
24
13 def MeasurePage(self, _, tab, results): 25 def MeasurePage(self, _, tab, results):
14 js_is_done = """ 26 js_is_done = """
15 window.location.pathname.indexOf('results.html') >= 0""" 27 window.location.pathname.indexOf('results.html') >= 0"""
16 def _IsDone(): 28 def _IsDone():
17 return tab.EvaluateJavaScript(js_is_done) 29 return tab.EvaluateJavaScript(js_is_done)
18 util.WaitFor(_IsDone, 300, poll_interval=5) 30 util.WaitFor(_IsDone, 300, poll_interval=5)
19 31
20 js_get_results = 'JSON.stringify(output);' 32 js_get_results = 'JSON.stringify(output);'
21 js_results = json.loads(tab.EvaluateJavaScript(js_get_results)) 33 js_results = json.loads(tab.EvaluateJavaScript(js_get_results))
22 r = collections.defaultdict(list) 34 r = collections.defaultdict(list)
23 totals = [] 35 totals = []
24 # js_results is: [{'foo': v1, 'bar': v2}, 36 # js_results is: [{'foo': v1, 'bar': v2},
25 # {'foo': v3, 'bar': v4}, 37 # {'foo': v3, 'bar': v4},
26 # ...] 38 # ...]
27 for result in js_results: 39 for result in js_results:
28 total = 0 40 total = 0
29 for key, value in result.iteritems(): 41 for key, value in result.iteritems():
30 r[key].append(value) 42 r[key].append(value)
31 total += value 43 total += value
32 totals.append(total) 44 totals.append(total)
33 for key, values in r.iteritems(): 45 for key, values in r.iteritems():
34 results.Add(key, 'ms', values, data_type='unimportant') 46 results.Add(key, 'ms', values, data_type='unimportant')
35 results.Add('Total', 'ms', totals) 47 results.Add('Total', 'ms', totals)
OLDNEW
« no previous file with comments | « tools/perf/perf_tools/spaceport.py ('k') | tools/telemetry/telemetry/page/page_set.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698