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 import re | 5 import re |
6 | 6 |
7 import page_sets | 7 import page_sets |
8 | 8 |
9 from core import perf_benchmark | 9 from core import perf_benchmark |
10 from telemetry import benchmark | 10 from telemetry import benchmark |
11 from telemetry.page import legacy_page_test | 11 from telemetry.page import legacy_page_test |
12 from telemetry.value import scalar | 12 from telemetry.value import scalar |
13 from telemetry.value import improvement_direction | 13 from telemetry.value import improvement_direction |
14 from telemetry.timeline import chrome_trace_category_filter | 14 from telemetry.timeline import chrome_trace_category_filter |
| 15 from telemetry.timeline import chrome_trace_config |
15 from telemetry.web_perf import timeline_based_measurement | 16 from telemetry.web_perf import timeline_based_measurement |
16 | 17 |
17 | 18 |
18 class _OortOnlineMeasurement(legacy_page_test.LegacyPageTest): | 19 class _OortOnlineMeasurement(legacy_page_test.LegacyPageTest): |
19 | 20 |
20 def __init__(self): | 21 def __init__(self): |
21 super(_OortOnlineMeasurement, self).__init__() | 22 super(_OortOnlineMeasurement, self).__init__() |
22 | 23 |
23 def ValidateAndMeasurePage(self, page, tab, results): | 24 def ValidateAndMeasurePage(self, page, tab, results): |
24 del page # unused | 25 del page # unused |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
56 """ | 57 """ |
57 | 58 |
58 # Report only V8-specific and overall renderer memory values. Note that | 59 # Report only V8-specific and overall renderer memory values. Note that |
59 # detailed values reported by the OS (such as native heap) are excluded. | 60 # detailed values reported by the OS (such as native heap) are excluded. |
60 _V8_AND_OVERALL_MEMORY_RE = re.compile( | 61 _V8_AND_OVERALL_MEMORY_RE = re.compile( |
61 r'renderer_processes:' | 62 r'renderer_processes:' |
62 r'(reported_by_chrome:v8|reported_by_os:system_memory:[^:]+$)') | 63 r'(reported_by_chrome:v8|reported_by_os:system_memory:[^:]+$)') |
63 | 64 |
64 page_set = page_sets.OortOnlineTBMPageSet | 65 page_set = page_sets.OortOnlineTBMPageSet |
65 | 66 |
66 def SetExtraBrowserOptions(self, options): | |
67 options.AppendExtraBrowserArgs([ | |
68 # TODO(perezju): Temporary workaround to disable periodic memory dumps. | |
69 # See: http://crbug.com/513692 | |
70 '--enable-memory-benchmarking', | |
71 ]) | |
72 | |
73 def CreateTimelineBasedMeasurementOptions(self): | 67 def CreateTimelineBasedMeasurementOptions(self): |
74 categories = [ | 68 categories = [ |
75 # Implicitly disable all categories. | 69 # Implicitly disable all categories. |
76 '-*', | 70 '-*', |
77 # V8. | 71 # V8. |
78 'blink.console', | 72 'blink.console', |
79 'disabled-by-default-v8.gc', | 73 'disabled-by-default-v8.gc', |
80 'renderer.scheduler', | 74 'renderer.scheduler', |
81 'v8', | 75 'v8', |
82 'webkit.console', | 76 'webkit.console', |
83 # Smoothness. | 77 # Smoothness. |
84 'benchmark', | 78 'benchmark', |
85 'blink', | 79 'blink', |
86 'blink.console', | 80 'blink.console', |
87 'trace_event_overhead', | 81 'trace_event_overhead', |
88 'webkit.console', | 82 'webkit.console', |
89 # Memory. | 83 # Memory. |
90 'blink.console', | 84 'blink.console', |
91 'disabled-by-default-memory-infra' | 85 'disabled-by-default-memory-infra' |
92 ] | 86 ] |
93 category_filter = chrome_trace_category_filter.ChromeTraceCategoryFilter( | 87 category_filter = chrome_trace_category_filter.ChromeTraceCategoryFilter( |
94 ','.join(categories)) | 88 ','.join(categories)) |
95 options = timeline_based_measurement.Options(category_filter) | 89 options = timeline_based_measurement.Options(category_filter) |
96 options.SetTimelineBasedMetrics([ | 90 options.SetTimelineBasedMetrics([ |
97 'gcMetric', 'memoryMetric', 'responsivenessMetric']) | 91 'gcMetric', 'memoryMetric', 'responsivenessMetric']) |
| 92 # Setting an empty memory dump config disables periodic dumps. |
| 93 options.config.chrome_trace_config.SetMemoryDumpConfig( |
| 94 chrome_trace_config.MemoryDumpConfig()) |
98 return options | 95 return options |
99 | 96 |
100 @classmethod | 97 @classmethod |
101 def Name(cls): | 98 def Name(cls): |
102 return 'oortonline_tbmv2' | 99 return 'oortonline_tbmv2' |
103 | 100 |
104 @classmethod | 101 @classmethod |
105 def ValueCanBeAddedPredicate(cls, value, _): | 102 def ValueCanBeAddedPredicate(cls, value, _): |
106 if 'memory:chrome' in value.name: | 103 if 'memory:chrome' in value.name: |
107 return bool(cls._V8_AND_OVERALL_MEMORY_RE.search(value.name)) | 104 return bool(cls._V8_AND_OVERALL_MEMORY_RE.search(value.name)) |
108 if 'animation ' in value.name: | 105 if 'animation ' in value.name: |
109 return 'throughput' in value.name or 'frameTimeDiscrepancy' in value.name | 106 return 'throughput' in value.name or 'frameTimeDiscrepancy' in value.name |
110 return 'v8' in value.name | 107 return 'v8' in value.name |
OLD | NEW |