OLD | NEW |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 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 JetStream benchmark. | 5 """Runs Apple's JetStream benchmark. |
6 | 6 |
7 JetStream combines a variety of JavaScript benchmarks, covering a variety of | 7 JetStream combines a variety of JavaScript benchmarks, covering a variety of |
8 advanced workloads and programming techniques, and reports a single score that | 8 advanced workloads and programming techniques, and reports a single score that |
9 balances them using geometric mean. | 9 balances them using geometric mean. |
10 | 10 |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
56 tab.EvaluateJavaScript('JetStream.start()') | 56 tab.EvaluateJavaScript('JetStream.start()') |
57 tab.WaitForJavaScriptExpression(get_results_js, 600) | 57 tab.WaitForJavaScriptExpression(get_results_js, 600) |
58 | 58 |
59 result = tab.EvaluateJavaScript(get_results_js) | 59 result = tab.EvaluateJavaScript(get_results_js) |
60 result = json.loads(result.partition(': ')[2]) | 60 result = json.loads(result.partition(': ')[2]) |
61 | 61 |
62 all_score_lists = [] | 62 all_score_lists = [] |
63 for k, v in result.iteritems(): | 63 for k, v in result.iteritems(): |
64 results.AddValue(list_of_scalar_values.ListOfScalarValues( | 64 results.AddValue(list_of_scalar_values.ListOfScalarValues( |
65 results.current_page, k.replace('.', '_'), 'score', v['result'], | 65 results.current_page, k.replace('.', '_'), 'score', v['result'], |
66 important=False)) | 66 important=False, higher_is_better=True)) |
67 # Collect all test scores to compute geometric mean. | 67 # Collect all test scores to compute geometric mean. |
68 for i, score in enumerate(v['result']): | 68 for i, score in enumerate(v['result']): |
69 if len(all_score_lists) <= i: | 69 if len(all_score_lists) <= i: |
70 all_score_lists.append([]) | 70 all_score_lists.append([]) |
71 all_score_lists[i].append(score) | 71 all_score_lists[i].append(score) |
72 all_scores = [] | 72 all_scores = [] |
73 for score_list in all_score_lists: | 73 for score_list in all_score_lists: |
74 all_scores.append(statistics.GeometricMean(score_list)) | 74 all_scores.append(statistics.GeometricMean(score_list)) |
75 results.AddSummaryValue(list_of_scalar_values.ListOfScalarValues( | 75 results.AddSummaryValue(list_of_scalar_values.ListOfScalarValues( |
76 None, 'Score', 'score', all_scores)) | 76 None, 'Score', 'score', all_scores)) |
77 | 77 |
78 | 78 |
79 @benchmark.Disabled('android', 'xp') # crbug.com/381742 | 79 @benchmark.Disabled('android', 'xp') # crbug.com/381742 |
80 class Jetstream(benchmark.Benchmark): | 80 class Jetstream(benchmark.Benchmark): |
81 test = _JetstreamMeasurement | 81 test = _JetstreamMeasurement |
82 | 82 |
83 def CreatePageSet(self, options): | 83 def CreatePageSet(self, options): |
84 ps = page_set.PageSet( | 84 ps = page_set.PageSet( |
85 archive_data_file='../page_sets/data/jetstream.json', | 85 archive_data_file='../page_sets/data/jetstream.json', |
86 file_path=os.path.abspath(__file__), | 86 file_path=os.path.abspath(__file__), |
87 bucket=page_set.INTERNAL_BUCKET) | 87 bucket=page_set.INTERNAL_BUCKET) |
88 ps.AddUserStory(page_module.Page( | 88 ps.AddUserStory(page_module.Page( |
89 'http://browserbench.org/JetStream/', ps, ps.base_dir, | 89 'http://browserbench.org/JetStream/', ps, ps.base_dir, |
90 make_javascript_deterministic=False)) | 90 make_javascript_deterministic=False)) |
91 return ps | 91 return ps |
OLD | NEW |