| 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 import os | 4 import os |
| 5 | 5 |
| 6 from core import path_util | 6 from core import path_util |
| 7 from core import perf_benchmark | 7 from core import perf_benchmark |
| 8 from page_sets import google_pages | 8 from page_sets import google_pages |
| 9 | 9 |
| 10 from benchmarks import v8_helper | 10 from benchmarks import v8_helper |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 category_filter = chrome_trace_category_filter.ChromeTraceCategoryFilter() | 23 category_filter = chrome_trace_category_filter.ChromeTraceCategoryFilter() |
| 24 category_filter.AddIncludedCategory('v8') | 24 category_filter.AddIncludedCategory('v8') |
| 25 category_filter.AddIncludedCategory('blink.console') | 25 category_filter.AddIncludedCategory('blink.console') |
| 26 category_filter.AddDisabledByDefault('disabled-by-default-v8.compile') | 26 category_filter.AddDisabledByDefault('disabled-by-default-v8.compile') |
| 27 options = timeline_based_measurement.Options(category_filter) | 27 options = timeline_based_measurement.Options(category_filter) |
| 28 options.SetTimelineBasedMetrics(['executionMetric']) | 28 options.SetTimelineBasedMetrics(['executionMetric']) |
| 29 return options | 29 return options |
| 30 | 30 |
| 31 | 31 |
| 32 @benchmark.Disabled('win') # crbug.com/416502 | 32 @benchmark.Disabled('win') # crbug.com/416502 |
| 33 @benchmark.Owner(emails=['hpayer@chromium.org', 'rmcilroy@chromium.org']) |
| 33 class V8Top25(perf_benchmark.PerfBenchmark): | 34 class V8Top25(perf_benchmark.PerfBenchmark): |
| 34 """Measures V8 GC metrics on the while scrolling down the top 25 web pages. | 35 """Measures V8 GC metrics on the while scrolling down the top 25 web pages. |
| 35 | 36 |
| 36 http://www.chromium.org/developers/design-documents/rendering-benchmarks""" | 37 http://www.chromium.org/developers/design-documents/rendering-benchmarks""" |
| 37 test = v8_gc_times.V8GCTimes | 38 test = v8_gc_times.V8GCTimes |
| 38 page_set = page_sets.V8Top25SmoothPageSet | 39 page_set = page_sets.V8Top25SmoothPageSet |
| 39 | 40 |
| 40 @classmethod | 41 @classmethod |
| 41 def ShouldDisable(cls, possible_browser): # http://crbug.com/597656 | 42 def ShouldDisable(cls, possible_browser): # http://crbug.com/597656 |
| 42 return (possible_browser.browser_type == 'reference' and | 43 return (possible_browser.browser_type == 'reference' and |
| 43 possible_browser.platform.GetDeviceTypeName() == 'Nexus 5X') | 44 possible_browser.platform.GetDeviceTypeName() == 'Nexus 5X') |
| 44 | 45 |
| 45 @classmethod | 46 @classmethod |
| 46 def Name(cls): | 47 def Name(cls): |
| 47 return 'v8.top_25_smooth' | 48 return 'v8.top_25_smooth' |
| 48 | 49 |
| 49 | 50 |
| 50 @benchmark.Enabled('android') | 51 @benchmark.Enabled('android') |
| 52 @benchmark.Owner(emails=['hpayer@chromium.org', 'rmcilroy@chromium.org']) |
| 51 class V8KeyMobileSites(perf_benchmark.PerfBenchmark): | 53 class V8KeyMobileSites(perf_benchmark.PerfBenchmark): |
| 52 """Measures V8 GC metrics on the while scrolling down key mobile sites. | 54 """Measures V8 GC metrics on the while scrolling down key mobile sites. |
| 53 | 55 |
| 54 http://www.chromium.org/developers/design-documents/rendering-benchmarks""" | 56 http://www.chromium.org/developers/design-documents/rendering-benchmarks""" |
| 55 test = v8_gc_times.V8GCTimes | 57 test = v8_gc_times.V8GCTimes |
| 56 page_set = page_sets.KeyMobileSitesSmoothPageSet | 58 page_set = page_sets.KeyMobileSitesSmoothPageSet |
| 57 | 59 |
| 58 @classmethod | 60 @classmethod |
| 59 def Name(cls): | 61 def Name(cls): |
| 60 return 'v8.key_mobile_sites_smooth' | 62 return 'v8.key_mobile_sites_smooth' |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 116 | 118 |
| 117 @classmethod | 119 @classmethod |
| 118 def ValueCanBeAddedPredicate(cls, value, _): | 120 def ValueCanBeAddedPredicate(cls, value, _): |
| 119 return 'v8' in value.name | 121 return 'v8' in value.name |
| 120 | 122 |
| 121 @classmethod | 123 @classmethod |
| 122 def ShouldTearDownStateAfterEachStoryRun(cls): | 124 def ShouldTearDownStateAfterEachStoryRun(cls): |
| 123 return True | 125 return True |
| 124 | 126 |
| 125 | 127 |
| 128 @benchmark.Owner(emails=['jochen@chromium.org']) |
| 126 class V8TodoMVC(perf_benchmark.PerfBenchmark): | 129 class V8TodoMVC(perf_benchmark.PerfBenchmark): |
| 127 """Measures V8 Execution metrics on the TodoMVC examples.""" | 130 """Measures V8 Execution metrics on the TodoMVC examples.""" |
| 128 page_set = page_sets.TodoMVCPageSet | 131 page_set = page_sets.TodoMVCPageSet |
| 129 | 132 |
| 130 def CreateTimelineBasedMeasurementOptions(self): | 133 def CreateTimelineBasedMeasurementOptions(self): |
| 131 return CreateV8TimelineBasedMeasurementOptions() | 134 return CreateV8TimelineBasedMeasurementOptions() |
| 132 | 135 |
| 133 @classmethod | 136 @classmethod |
| 134 def Name(cls): | 137 def Name(cls): |
| 135 return 'v8.todomvc' | 138 return 'v8.todomvc' |
| 136 | 139 |
| 137 @classmethod | 140 @classmethod |
| 138 def ShouldDisable(cls, possible_browser): | 141 def ShouldDisable(cls, possible_browser): |
| 139 # This benchmark is flaky on Samsung Galaxy S5s. | 142 # This benchmark is flaky on Samsung Galaxy S5s. |
| 140 # http://crbug.com/644826 | 143 # http://crbug.com/644826 |
| 141 return possible_browser.platform.GetDeviceTypeName() == 'SM-G900H' | 144 return possible_browser.platform.GetDeviceTypeName() == 'SM-G900H' |
| 142 | 145 |
| 143 @classmethod | 146 @classmethod |
| 144 def ShouldTearDownStateAfterEachStoryRun(cls): | 147 def ShouldTearDownStateAfterEachStoryRun(cls): |
| 145 return True | 148 return True |
| 146 | 149 |
| 147 | 150 |
| 151 @benchmark.Owner(emails=['mvstaton@chromium.org']) |
| 148 class V8TodoMVCTurbo(V8TodoMVC): | 152 class V8TodoMVCTurbo(V8TodoMVC): |
| 149 """Measures V8 Execution metrics on the TodoMVC examples | 153 """Measures V8 Execution metrics on the TodoMVC examples |
| 150 using Ignition+TurboFan.""" | 154 using Ignition+TurboFan.""" |
| 151 | 155 |
| 152 page_set = page_sets.TodoMVCPageSet | 156 page_set = page_sets.TodoMVCPageSet |
| 153 | 157 |
| 154 def SetExtraBrowserOptions(self, options): | 158 def SetExtraBrowserOptions(self, options): |
| 155 super(V8TodoMVCTurbo, self).SetExtraBrowserOptions(options) | 159 super(V8TodoMVCTurbo, self).SetExtraBrowserOptions(options) |
| 156 v8_helper.EnableTurbo(options) | 160 v8_helper.EnableTurbo(options) |
| 157 | 161 |
| 158 @classmethod | 162 @classmethod |
| 159 def Name(cls): | 163 def Name(cls): |
| 160 return 'v8.todomvc-turbo' | 164 return 'v8.todomvc-turbo' |
| 161 | 165 |
| 162 | 166 |
| 163 | 167 |
| 168 @benchmark.Owner(emails=['ulan@chromium.org']) |
| 164 class V8InfiniteScroll(_InfiniteScrollBenchmark): | 169 class V8InfiniteScroll(_InfiniteScrollBenchmark): |
| 165 """Measures V8 GC metrics and memory usage while scrolling the top web pages. | 170 """Measures V8 GC metrics and memory usage while scrolling the top web pages. |
| 166 http://www.chromium.org/developers/design-documents/rendering-benchmarks""" | 171 http://www.chromium.org/developers/design-documents/rendering-benchmarks""" |
| 167 | 172 |
| 168 page_set = page_sets.InfiniteScrollPageSet | 173 page_set = page_sets.InfiniteScrollPageSet |
| 169 | 174 |
| 170 @classmethod | 175 @classmethod |
| 171 def Name(cls): | 176 def Name(cls): |
| 172 return 'v8.infinite_scroll_tbmv2' | 177 return 'v8.infinite_scroll_tbmv2' |
| 173 | 178 |
| 174 | 179 |
| 180 @benchmark.Owner(emails=['mvstaton@chromium.org']) |
| 175 class V8InfiniteScrollTurbo(V8InfiniteScroll): | 181 class V8InfiniteScrollTurbo(V8InfiniteScroll): |
| 176 """Measures V8 GC metrics using Ignition+TurboFan.""" | 182 """Measures V8 GC metrics using Ignition+TurboFan.""" |
| 177 | 183 |
| 178 def SetExtraBrowserOptions(self, options): | 184 def SetExtraBrowserOptions(self, options): |
| 179 super(V8InfiniteScrollTurbo, self).SetExtraBrowserOptions(options) | 185 super(V8InfiniteScrollTurbo, self).SetExtraBrowserOptions(options) |
| 180 v8_helper.EnableTurbo(options) | 186 v8_helper.EnableTurbo(options) |
| 181 | 187 |
| 182 @classmethod | 188 @classmethod |
| 183 def Name(cls): | 189 def Name(cls): |
| 184 return 'v8.infinite_scroll-turbo_tbmv2' | 190 return 'v8.infinite_scroll-turbo_tbmv2' |
| 185 | 191 |
| 186 | 192 |
| 187 @benchmark.Enabled('android') | 193 @benchmark.Enabled('android') |
| 194 @benchmark.Owner(emails=['ulan@chromium.org']) |
| 188 class V8MobileInfiniteScroll(_InfiniteScrollBenchmark): | 195 class V8MobileInfiniteScroll(_InfiniteScrollBenchmark): |
| 189 """Measures V8 GC metrics and memory usage while scrolling the top mobile | 196 """Measures V8 GC metrics and memory usage while scrolling the top mobile |
| 190 web pages. | 197 web pages. |
| 191 http://www.chromium.org/developers/design-documents/rendering-benchmarks""" | 198 http://www.chromium.org/developers/design-documents/rendering-benchmarks""" |
| 192 | 199 |
| 193 page_set = page_sets.MobileInfiniteScrollPageSet | 200 page_set = page_sets.MobileInfiniteScrollPageSet |
| 194 | 201 |
| 195 @classmethod | 202 @classmethod |
| 196 def Name(cls): | 203 def Name(cls): |
| 197 return 'v8.mobile_infinite_scroll_tbmv2' | 204 return 'v8.mobile_infinite_scroll_tbmv2' |
| 198 | 205 |
| 199 @classmethod | 206 @classmethod |
| 200 def ShouldDisable(cls, possible_browser): # http://crbug.com/597656 | 207 def ShouldDisable(cls, possible_browser): # http://crbug.com/597656 |
| 201 return (possible_browser.browser_type == 'reference' and | 208 return (possible_browser.browser_type == 'reference' and |
| 202 possible_browser.platform.GetDeviceTypeName() == 'Nexus 5X') | 209 possible_browser.platform.GetDeviceTypeName() == 'Nexus 5X') |
| 203 | 210 |
| 204 | 211 |
| 205 @benchmark.Enabled('android') | 212 @benchmark.Enabled('android') |
| 213 @benchmark.Owner(emails=['mvstaton@chromium.org']) |
| 206 class V8MobileInfiniteScrollTurbo(V8MobileInfiniteScroll): | 214 class V8MobileInfiniteScrollTurbo(V8MobileInfiniteScroll): |
| 207 """Measures V8 GC metrics and memory usage while scrolling the top mobile | 215 """Measures V8 GC metrics and memory usage while scrolling the top mobile |
| 208 web pages and running Ignition+TurboFan. | 216 web pages and running Ignition+TurboFan. |
| 209 http://www.chromium.org/developers/design-documents/rendering-benchmarks""" | 217 http://www.chromium.org/developers/design-documents/rendering-benchmarks""" |
| 210 | 218 |
| 211 def SetExtraBrowserOptions(self, options): | 219 def SetExtraBrowserOptions(self, options): |
| 212 super(V8MobileInfiniteScrollTurbo, self).SetExtraBrowserOptions(options) | 220 super(V8MobileInfiniteScrollTurbo, self).SetExtraBrowserOptions(options) |
| 213 v8_helper.EnableTurbo(options) | 221 v8_helper.EnableTurbo(options) |
| 214 | 222 |
| 215 @classmethod | 223 @classmethod |
| 216 def Name(cls): | 224 def Name(cls): |
| 217 return 'v8.mobile_infinite_scroll-turbo_tbmv2' | 225 return 'v8.mobile_infinite_scroll-turbo_tbmv2' |
| 218 | 226 |
| 219 | 227 |
| 228 @benchmark.Owner(emails=['hablich@chromium.org']) |
| 220 class V8Adword(perf_benchmark.PerfBenchmark): | 229 class V8Adword(perf_benchmark.PerfBenchmark): |
| 221 """Measures V8 Execution metrics on the Adword page.""" | 230 """Measures V8 Execution metrics on the Adword page.""" |
| 222 | 231 |
| 223 options = {'pageset_repeat': 3} | 232 options = {'pageset_repeat': 3} |
| 224 | 233 |
| 225 def CreateTimelineBasedMeasurementOptions(self): | 234 def CreateTimelineBasedMeasurementOptions(self): |
| 226 return CreateV8TimelineBasedMeasurementOptions() | 235 return CreateV8TimelineBasedMeasurementOptions() |
| 227 | 236 |
| 228 def CreateStorySet(self, options): | 237 def CreateStorySet(self, options): |
| 229 """Creates the instance of StorySet used to run the benchmark. | 238 """Creates the instance of StorySet used to run the benchmark. |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 293 return tbm_options | 302 return tbm_options |
| 294 | 303 |
| 295 @classmethod | 304 @classmethod |
| 296 def ShouldDisable(cls, possible_browser): | 305 def ShouldDisable(cls, possible_browser): |
| 297 if possible_browser.browser_type == 'reference': | 306 if possible_browser.browser_type == 'reference': |
| 298 return True | 307 return True |
| 299 return False | 308 return False |
| 300 | 309 |
| 301 | 310 |
| 302 @benchmark.Disabled('android', 'win', 'reference') # crbug.com/664318 | 311 @benchmark.Disabled('android', 'win', 'reference') # crbug.com/664318 |
| 312 @benchmark.Owner(emails=['cbruni@chromium.org']) |
| 303 class V8Top25RuntimeStats(_Top25RuntimeStats): | 313 class V8Top25RuntimeStats(_Top25RuntimeStats): |
| 304 """Runtime Stats benchmark for a 25 top V8 web pages. | 314 """Runtime Stats benchmark for a 25 top V8 web pages. |
| 305 | 315 |
| 306 Designed to represent a mix between top websites and a set of pages that | 316 Designed to represent a mix between top websites and a set of pages that |
| 307 have unique V8 characteristics. | 317 have unique V8 characteristics. |
| 308 """ | 318 """ |
| 309 | 319 |
| 310 @classmethod | 320 @classmethod |
| 311 def Name(cls): | 321 def Name(cls): |
| 312 return 'v8.runtime_stats.top_25' | 322 return 'v8.runtime_stats.top_25' |
| 313 | 323 |
| 314 def CreateStorySet(self, options): | 324 def CreateStorySet(self, options): |
| 315 return page_sets.V8Top25StorySet() | 325 return page_sets.V8Top25StorySet() |
| OLD | NEW |