Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(54)

Side by Side Diff: tools/perf/benchmarks/system_health.py

Issue 2144073004: [system-health] Unify SH stories interface (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Restrict story selector Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 # Copyright 2016 The Chromium Authors. All rights reserved. 1 # Copyright 2016 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 from telemetry import benchmark 8 from telemetry import benchmark
9 from telemetry.timeline import chrome_trace_category_filter 9 from telemetry.timeline import chrome_trace_category_filter
10 from telemetry.web_perf import timeline_based_measurement 10 from telemetry.web_perf import timeline_based_measurement
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 ]) 71 ])
72 72
73 def CreateTimelineBasedMeasurementOptions(self): 73 def CreateTimelineBasedMeasurementOptions(self):
74 options = timeline_based_measurement.Options( 74 options = timeline_based_measurement.Options(
75 chrome_trace_category_filter.ChromeTraceCategoryFilter( 75 chrome_trace_category_filter.ChromeTraceCategoryFilter(
76 '-*,disabled-by-default-memory-infra')) 76 '-*,disabled-by-default-memory-infra'))
77 options.config.enable_android_graphics_memtrack = True 77 options.config.enable_android_graphics_memtrack = True
78 options.SetTimelineBasedMetrics(['memoryMetric']) 78 options.SetTimelineBasedMetrics(['memoryMetric'])
79 return options 79 return options
80 80
81 def CreateStorySet(self, options):
82 return page_sets.SystemHealthStorySet(platform=self.PLATFORM, case='load',
83 take_memory_measurement=True)
84
81 @classmethod 85 @classmethod
82 def Name(cls): 86 def Name(cls):
83 return 'system_health.memory_%s' % cls.page_set.PLATFORM 87 return 'system_health.memory_%s' % cls.PLATFORM
84 88
85 @classmethod 89 @classmethod
86 def ValueCanBeAddedPredicate(cls, value, is_first_result): 90 def ValueCanBeAddedPredicate(cls, value, is_first_result):
87 # TODO(crbug.com/610962): Remove this stopgap when the perf dashboard 91 # TODO(crbug.com/610962): Remove this stopgap when the perf dashboard
88 # is able to cope with the data load generated by TBMv2 metrics. 92 # is able to cope with the data load generated by TBMv2 metrics.
89 return not _IGNORED_STATS_RE.search(value.name) 93 return not _IGNORED_STATS_RE.search(value.name)
90 94
91 95
92 class DesktopMemorySystemHealth(_MemorySystemHealthBenchmark): 96 class DesktopMemorySystemHealth(_MemorySystemHealthBenchmark):
93 """Desktop Chrome Memory System Health Benchmark.""" 97 """Desktop Chrome Memory System Health Benchmark."""
94 page_set = page_sets.DesktopSystemHealthStorySet 98 PLATFORM = 'desktop'
95 99
96 @classmethod 100 @classmethod
97 def ShouldDisable(cls, possible_browser): 101 def ShouldDisable(cls, possible_browser):
98 # http://crbug.com/624355 (reference builds). 102 # http://crbug.com/624355 (reference builds).
99 return (possible_browser.platform.GetDeviceTypeName() != 'Desktop' or 103 return (possible_browser.platform.GetDeviceTypeName() != 'Desktop' or
100 possible_browser.browser_type == 'reference') 104 possible_browser.browser_type == 'reference')
101 105
102 106
103 class MobileMemorySystemHealth(_MemorySystemHealthBenchmark): 107 class MobileMemorySystemHealth(_MemorySystemHealthBenchmark):
104 """Mobile Chrome Memory System Health Benchmark.""" 108 """Mobile Chrome Memory System Health Benchmark."""
105 page_set = page_sets.MobileSystemHealthStorySet 109 PLATFORM = 'mobile'
106 110
107 @classmethod 111 @classmethod
108 def ShouldDisable(cls, possible_browser): 112 def ShouldDisable(cls, possible_browser):
109 # http://crbug.com/612144 (reference on Nexus 5X). 113 # http://crbug.com/612144 (reference on Nexus 5X).
110 return possible_browser.platform.GetDeviceTypeName() == 'Desktop' or ( 114 return possible_browser.platform.GetDeviceTypeName() == 'Desktop' or (
111 possible_browser.browser_type == 'reference' and 115 possible_browser.browser_type == 'reference' and
112 possible_browser.platform.GetDeviceTypeName() == 'Nexus 5X') 116 possible_browser.platform.GetDeviceTypeName() == 'Nexus 5X')
113 117
118
114 @benchmark.Enabled('android-webview') 119 @benchmark.Enabled('android-webview')
115 class WebviewStartupSystemHealthBenchmark(perf_benchmark.PerfBenchmark): 120 class WebviewStartupSystemHealthBenchmark(perf_benchmark.PerfBenchmark):
116 """Webview startup time benchmark 121 """Webview startup time benchmark
117 122
118 Benchmark that measures how long WebView takes to start up 123 Benchmark that measures how long WebView takes to start up
119 and load a blank page. Since thie metric only requires the trace 124 and load a blank page. Since thie metric only requires the trace
120 markers recorded in atrace, Chrome tracing is not enabled for this 125 markers recorded in atrace, Chrome tracing is not enabled for this
121 benchmark. 126 benchmark.
122 """ 127 """
123 page_set = page_sets.BlankPageSet 128 page_set = page_sets.BlankPageSet
124 129
125 def CreateTimelineBasedMeasurementOptions(self): 130 def CreateTimelineBasedMeasurementOptions(self):
126 options = timeline_based_measurement.Options() 131 options = timeline_based_measurement.Options()
127 options.SetTimelineBasedMetrics(['webviewStartupMetric']) 132 options.SetTimelineBasedMetrics(['webviewStartupMetric'])
128 options.config.enable_atrace_trace = True 133 options.config.enable_atrace_trace = True
129 options.config.enable_chrome_trace = False 134 options.config.enable_chrome_trace = False
130 options.config.atrace_config.app_name = 'org.chromium.webview_shell' 135 options.config.atrace_config.app_name = 'org.chromium.webview_shell'
131 return options 136 return options
132 137
133 @classmethod 138 @classmethod
134 def ShouldTearDownStateAfterEachStoryRun(cls): 139 def ShouldTearDownStateAfterEachStoryRun(cls):
135 return True 140 return True
136 141
137 @classmethod 142 @classmethod
138 def Name(cls): 143 def Name(cls):
139 return 'system_health.webview_startup' 144 return 'system_health.webview_startup'
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698