| OLD | NEW |
| 1 # Copyright 2015 The Chromium Authors. All rights reserved. | 1 # Copyright 2015 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 import re | 5 import re |
| 6 | 6 |
| 7 from core import perf_benchmark | 7 from core import perf_benchmark |
| 8 | 8 |
| 9 from telemetry import benchmark | 9 from telemetry import benchmark |
| 10 from telemetry.timeline import chrome_trace_category_filter | 10 from telemetry.timeline import chrome_trace_category_filter |
| 11 from telemetry.timeline import chrome_trace_config | 11 from telemetry.timeline import chrome_trace_config |
| 12 from telemetry.web_perf import timeline_based_measurement | 12 from telemetry.web_perf import timeline_based_measurement |
| 13 | 13 |
| 14 import page_sets | 14 import page_sets |
| 15 | 15 |
| 16 | 16 |
| 17 # See tr.v.Numeric.getSummarizedScalarNumericsWithNames() | 17 # See tr.v.Numeric.getSummarizedScalarNumericsWithNames() |
| 18 # https://github.com/catapult-project/catapult/blob/master/tracing/tracing/value
/numeric.html#L323 | 18 # https://github.com/catapult-project/catapult/blob/master/tracing/tracing/value
/numeric.html#L323 |
| 19 _IGNORED_STATS_RE = re.compile( | 19 _IGNORED_STATS_RE = re.compile( |
| 20 r'(?<!dump)(?<!process)_(std|count|max|min|sum|pct_\d{4}(_\d+)?)$') | 20 r'(?<!dump)(?<!process)_(std|count|max|min|sum|pct_\d{4}(_\d+)?)$') |
| 21 _IGNORED_TOP_10_STATS_RE = re.compile( |
| 22 r'(?<!dump)(?<!process)_(min|sum|pct_\d{4}(_\d+)?)$') |
| 21 | 23 |
| 22 | 24 |
| 23 class _MemoryInfra(perf_benchmark.PerfBenchmark): | 25 class _MemoryInfra(perf_benchmark.PerfBenchmark): |
| 24 """Base class for new-generation memory benchmarks based on memory-infra. | 26 """Base class for new-generation memory benchmarks based on memory-infra. |
| 25 | 27 |
| 26 This benchmark records data using memory-infra (https://goo.gl/8tGc6O), which | 28 This benchmark records data using memory-infra (https://goo.gl/8tGc6O), which |
| 27 is part of chrome tracing, and extracts it using timeline-based measurements. | 29 is part of chrome tracing, and extracts it using timeline-based measurements. |
| 28 """ | 30 """ |
| 29 | 31 |
| 30 def CreateTimelineBasedMeasurementOptions(self): | 32 def CreateTimelineBasedMeasurementOptions(self): |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 @classmethod | 76 @classmethod |
| 75 def ShouldDisable(cls, possible_browser): | 77 def ShouldDisable(cls, possible_browser): |
| 76 # TODO(crbug.com/586148): Benchmark should not depend on DeskClock app. | 78 # TODO(crbug.com/586148): Benchmark should not depend on DeskClock app. |
| 77 return not possible_browser.platform.CanLaunchApplication( | 79 return not possible_browser.platform.CanLaunchApplication( |
| 78 'com.google.android.deskclock') | 80 'com.google.android.deskclock') |
| 79 | 81 |
| 80 @classmethod | 82 @classmethod |
| 81 def ValueCanBeAddedPredicate(cls, value, is_first_result): | 83 def ValueCanBeAddedPredicate(cls, value, is_first_result): |
| 82 # TODO(crbug.com/610962): Remove this stopgap when the perf dashboard | 84 # TODO(crbug.com/610962): Remove this stopgap when the perf dashboard |
| 83 # is able to cope with the data load generated by TBMv2 metrics. | 85 # is able to cope with the data load generated by TBMv2 metrics. |
| 84 return not _IGNORED_STATS_RE.search(value.name) | 86 return not _IGNORED_TOP_10_STATS_RE.search(value.name) |
| 85 | 87 |
| 86 | 88 |
| 87 class MemoryBenchmarkTop10MobileStress(MemoryBenchmarkTop10Mobile): | 89 class MemoryBenchmarkTop10MobileStress(MemoryBenchmarkTop10Mobile): |
| 88 """Run top 10 mobile page set without closing/restarting the browser. | 90 """Run top 10 mobile page set without closing/restarting the browser. |
| 89 | 91 |
| 90 This benchmark is intended to stress-test the browser, catching memory leaks | 92 This benchmark is intended to stress-test the browser, catching memory leaks |
| 91 or possible crashes after interacting with the browser for a period of time. | 93 or possible crashes after interacting with the browser for a period of time. |
| 92 """ | 94 """ |
| 93 page_set = page_sets.MemoryTop10MobileRealistic | 95 page_set = page_sets.MemoryTop10MobileRealistic |
| 94 | 96 |
| (...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 248 of long running idle Gmail page """ | 250 of long running idle Gmail page """ |
| 249 page_set = page_sets.LongRunningIdleGmailBackgroundPageSet | 251 page_set = page_sets.LongRunningIdleGmailBackgroundPageSet |
| 250 | 252 |
| 251 @classmethod | 253 @classmethod |
| 252 def Name(cls): | 254 def Name(cls): |
| 253 return 'memory.long_running_idle_gmail_background_tbmv2' | 255 return 'memory.long_running_idle_gmail_background_tbmv2' |
| 254 | 256 |
| 255 @classmethod | 257 @classmethod |
| 256 def ShouldDisable(cls, possible_browser): # http://crbug.com/616530 | 258 def ShouldDisable(cls, possible_browser): # http://crbug.com/616530 |
| 257 return cls.IsSvelte(possible_browser) | 259 return cls.IsSvelte(possible_browser) |
| OLD | NEW |