| 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 from core import perf_benchmark | 5 from core import perf_benchmark |
| 6 | 6 |
| 7 from benchmarks import silk_flags | 7 from benchmarks import silk_flags |
| 8 from measurements import power | 8 from measurements import power |
| 9 import page_sets | 9 import page_sets |
| 10 from telemetry import benchmark | 10 from telemetry import benchmark |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 test = power.QuiescentPower | 74 test = power.QuiescentPower |
| 75 page_set = page_sets.Top10PageSet | 75 page_set = page_sets.Top10PageSet |
| 76 | 76 |
| 77 def SetExtraBrowserOptions(self, options): | 77 def SetExtraBrowserOptions(self, options): |
| 78 options.full_performance_mode = False | 78 options.full_performance_mode = False |
| 79 | 79 |
| 80 @classmethod | 80 @classmethod |
| 81 def Name(cls): | 81 def Name(cls): |
| 82 return 'power.top_10' | 82 return 'power.top_10' |
| 83 | 83 |
| 84 @benchmark.Enabled('mac') |
| 85 class PowerGpuRasterizationTop10(perf_benchmark.PerfBenchmark): |
| 86 """Top 10 quiescent power test with GPU rasterization enabled.""" |
| 87 tag = 'gpu_rasterization' |
| 88 test = power.QuiescentPower |
| 89 page_set = page_sets.Top10PageSet |
| 90 |
| 91 def SetExtraBrowserOptions(self, options): |
| 92 silk_flags.CustomizeBrowserOptionsForGpuRasterization(options) |
| 93 options.full_performance_mode = False |
| 94 |
| 95 @classmethod |
| 96 def Name(cls): |
| 97 return 'power.gpu_rasterization.top_10' |
| 98 |
| 84 | 99 |
| 85 @benchmark.Enabled('mac') | 100 @benchmark.Enabled('mac') |
| 86 class PowerTop25(perf_benchmark.PerfBenchmark): | 101 class PowerTop25(perf_benchmark.PerfBenchmark): |
| 87 """Top 25 quiescent power test.""" | 102 """Top 25 quiescent power test.""" |
| 88 test = power.QuiescentPower | 103 test = power.QuiescentPower |
| 89 page_set = page_sets.Top25PageSet | 104 page_set = page_sets.Top25PageSet |
| 90 | 105 |
| 91 def SetExtraBrowserOptions(self, options): | 106 def SetExtraBrowserOptions(self, options): |
| 92 options.full_performance_mode = False | 107 options.full_performance_mode = False |
| 93 | 108 |
| 94 @classmethod | 109 @classmethod |
| 95 def Name(cls): | 110 def Name(cls): |
| 96 return 'power.top_25' | 111 return 'power.top_25' |
| 97 | 112 |
| 98 def CreateStorySet(self, _): | 113 def CreateStorySet(self, _): |
| 99 # Exclude techcrunch.com. It is not suitable for this benchmark because it | 114 # Exclude techcrunch.com. It is not suitable for this benchmark because it |
| 100 # does not consistently become quiescent within 60 seconds. | 115 # does not consistently become quiescent within 60 seconds. |
| 101 stories = self.page_set() | 116 stories = self.page_set() |
| 102 found = next((x for x in stories if 'techcrunch.com' in x.url), None) | 117 found = next((x for x in stories if 'techcrunch.com' in x.url), None) |
| 103 if found: | 118 if found: |
| 104 stories.RemoveStory(found) | 119 stories.RemoveStory(found) |
| 105 return stories | 120 return stories |
| 106 | 121 |
| 122 @benchmark.Enabled('mac') |
| 123 class PowerGpuRasterizationTop25(perf_benchmark.PerfBenchmark): |
| 124 """Top 25 quiescent power test with GPU rasterization enabled.""" |
| 125 tag = 'gpu_rasterization' |
| 126 test = power.QuiescentPower |
| 127 page_set = page_sets.Top25PageSet |
| 128 |
| 129 def SetExtraBrowserOptions(self, options): |
| 130 silk_flags.CustomizeBrowserOptionsForGpuRasterization(options) |
| 131 options.full_performance_mode = False |
| 132 |
| 133 @classmethod |
| 134 def Name(cls): |
| 135 return 'power.gpu_rasterization.top_25' |
| 136 |
| 137 def CreateStorySet(self, _): |
| 138 # Exclude techcrunch.com. It is not suitable for this benchmark because it |
| 139 # does not consistently become quiescent within 60 seconds. |
| 140 stories = self.page_set() |
| 141 found = next((x for x in stories if 'techcrunch.com' in x.url), None) |
| 142 if found: |
| 143 stories.RemoveStory(found) |
| 144 return stories |
| 107 | 145 |
| 108 @benchmark.Enabled('linux', 'mac', 'win', 'chromeos') | 146 @benchmark.Enabled('linux', 'mac', 'win', 'chromeos') |
| 109 class PowerPPSControlDisabled(perf_benchmark.PerfBenchmark): | 147 class PowerPPSControlDisabled(perf_benchmark.PerfBenchmark): |
| 110 """A single page with a small-ish non-essential plugin. In this test, Plugin | 148 """A single page with a small-ish non-essential plugin. In this test, Plugin |
| 111 Power Saver (PPS) is disabled, so the plugin should continue animating and | 149 Power Saver (PPS) is disabled, so the plugin should continue animating and |
| 112 taking power.""" | 150 taking power.""" |
| 113 test = power.QuiescentPower | 151 test = power.QuiescentPower |
| 114 page_set = page_sets.PluginPowerSaverPageSet | 152 page_set = page_sets.PluginPowerSaverPageSet |
| 115 options = {'pageset_repeat': 5} | 153 options = {'pageset_repeat': 5} |
| 116 | 154 |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 166 page_set = page_sets.ThrottledPluginsPageSet | 204 page_set = page_sets.ThrottledPluginsPageSet |
| 167 options = {'pageset_repeat': 5} | 205 options = {'pageset_repeat': 5} |
| 168 | 206 |
| 169 def SetExtraBrowserOptions(self, options): | 207 def SetExtraBrowserOptions(self, options): |
| 170 options.AppendExtraBrowserArgs(['--enable-plugin-power-saver']) | 208 options.AppendExtraBrowserArgs(['--enable-plugin-power-saver']) |
| 171 options.full_performance_mode = False | 209 options.full_performance_mode = False |
| 172 | 210 |
| 173 @classmethod | 211 @classmethod |
| 174 def Name(cls): | 212 def Name(cls): |
| 175 return 'power.throttled_plugins_pps_enabled' | 213 return 'power.throttled_plugins_pps_enabled' |
| OLD | NEW |