OLD | NEW |
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 from measurements import page_cycler | 5 from measurements import page_cycler |
6 import page_sets | 6 import page_sets |
7 from telemetry import benchmark | 7 from telemetry import benchmark |
8 | 8 |
9 | 9 |
10 class _PageCycler(benchmark.Benchmark): | 10 class _PageCycler(benchmark.Benchmark): |
11 options = {'pageset_repeat': 6} | 11 options = {'pageset_repeat': 6} |
| 12 cold_load_percent = 50 # % of page visits for which a cold load is forced |
12 | 13 |
13 @classmethod | 14 @classmethod |
14 def Name(cls): | 15 def Name(cls): |
15 return 'page_cycler' | 16 return 'page_cycler' |
16 | 17 |
17 @classmethod | 18 @classmethod |
18 def AddBenchmarkCommandLineArgs(cls, parser): | 19 def AddBenchmarkCommandLineArgs(cls, parser): |
19 parser.add_option('--report-speed-index', | 20 parser.add_option('--report-speed-index', |
20 action='store_true', | 21 action='store_true', |
21 help='Enable the speed index metric.') | 22 help='Enable the speed index metric.') |
22 | 23 |
23 parser.add_option('--cold-load-percent', type='int', default=50, | 24 @classmethod |
24 help='%d of page visits for which a cold load is forced') | 25 def ValueCanBeAddedPredicate(cls, _, is_first_result): |
| 26 return cls.cold_load_percent > 0 or not is_first_result |
25 | 27 |
26 def CreatePageTest(self, options): | 28 def CreatePageTest(self, options): |
27 return page_cycler.PageCycler( | 29 return page_cycler.PageCycler( |
28 page_repeat = options.page_repeat, | 30 page_repeat = options.page_repeat, |
29 pageset_repeat = options.pageset_repeat, | 31 pageset_repeat = options.pageset_repeat, |
30 cold_load_percent = options.cold_load_percent, | 32 cold_load_percent = self.cold_load_percent, |
31 report_speed_index = options.report_speed_index) | 33 report_speed_index = options.report_speed_index) |
32 | 34 |
33 | 35 |
34 # This is an old page set, we intend to remove it after more modern benchmarks | 36 # This is an old page set, we intend to remove it after more modern benchmarks |
35 # work on CrOS. | 37 # work on CrOS. |
36 @benchmark.Enabled('chromeos') | 38 @benchmark.Enabled('chromeos') |
37 class PageCyclerDhtml(_PageCycler): | 39 class PageCyclerDhtml(_PageCycler): |
38 """Benchmarks for various DHTML operations like simple animations.""" | 40 """Benchmarks for various DHTML operations like simple animations.""" |
39 page_set = page_sets.DhtmlPageSet | 41 page_set = page_sets.DhtmlPageSet |
40 | 42 |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
132 """Measures load time of the top 10 sites under simulated cable network. | 134 """Measures load time of the top 10 sites under simulated cable network. |
133 | 135 |
134 Recorded in June, 2013. Pages are loaded under the simplisticly simulated | 136 Recorded in June, 2013. Pages are loaded under the simplisticly simulated |
135 bandwidth and RTT constraints of a cable modem (5Mbit/s down, 1Mbit/s up, | 137 bandwidth and RTT constraints of a cable modem (5Mbit/s down, 1Mbit/s up, |
136 28ms RTT). Contention is realistically simulated, but slow start is not. | 138 28ms RTT). Contention is realistically simulated, but slow start is not. |
137 DNS lookups are 'free'. | 139 DNS lookups are 'free'. |
138 """ | 140 """ |
139 tag = 'netsim' | 141 tag = 'netsim' |
140 page_set = page_sets.Top10PageSet | 142 page_set = page_sets.Top10PageSet |
141 options = { | 143 options = { |
142 'cold_load_percent': 100, | |
143 'extra_wpr_args_as_string': '--shaping_type=proxy --net=cable', | 144 'extra_wpr_args_as_string': '--shaping_type=proxy --net=cable', |
144 'pageset_repeat': 6, | 145 'pageset_repeat': 6, |
145 } | 146 } |
| 147 cold_load_percent = 100 |
146 | 148 |
147 @classmethod | 149 @classmethod |
148 def Name(cls): | 150 def Name(cls): |
149 return 'page_cycler.netsim.top_10' | 151 return 'page_cycler.netsim.top_10' |
150 | 152 |
151 def CreatePageTest(self, options): | 153 def CreatePageTest(self, options): |
152 return page_cycler.PageCycler( | 154 return page_cycler.PageCycler( |
153 page_repeat = options.page_repeat, | 155 page_repeat = options.page_repeat, |
154 pageset_repeat = options.pageset_repeat, | 156 pageset_repeat = options.pageset_repeat, |
155 cold_load_percent = options.cold_load_percent, | 157 cold_load_percent = self.cold_load_percent, |
156 report_speed_index = options.report_speed_index, | 158 report_speed_index = options.report_speed_index, |
157 clear_cache_before_each_run = True) | 159 clear_cache_before_each_run = True) |
158 | 160 |
159 | 161 |
160 @benchmark.Enabled('android') | 162 @benchmark.Enabled('android') |
161 class PageCyclerTop10Mobile(_PageCycler): | 163 class PageCyclerTop10Mobile(_PageCycler): |
162 """Page load time benchmark for the top 10 mobile web pages. | 164 """Page load time benchmark for the top 10 mobile web pages. |
163 | 165 |
164 Runs against pages recorded in November, 2013. | 166 Runs against pages recorded in November, 2013. |
165 """ | 167 """ |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
226 | 228 |
227 def CreatePageSet(self, options): | 229 def CreatePageSet(self, options): |
228 return page_sets.Typical25PageSet(run_no_page_interactions=True) | 230 return page_sets.Typical25PageSet(run_no_page_interactions=True) |
229 | 231 |
230 @benchmark.Disabled # crbug.com/443730 | 232 @benchmark.Disabled # crbug.com/443730 |
231 class PageCyclerBigJs(_PageCycler): | 233 class PageCyclerBigJs(_PageCycler): |
232 page_set = page_sets.BigJsPageSet | 234 page_set = page_sets.BigJsPageSet |
233 @classmethod | 235 @classmethod |
234 def Name(cls): | 236 def Name(cls): |
235 return 'page_cycler.big_js' | 237 return 'page_cycler.big_js' |
OLD | NEW |