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

Side by Side Diff: tools/perf/measurements/oilpan_gc_times.py

Issue 1124033004: [Telemetry] Kill PageTest.DidRunActions hook. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix task_execution_time. Thanks unittest! Created 5 years, 7 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
« no previous file with comments | « no previous file | tools/perf/measurements/oilpan_gc_times_unittest.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 os 5 import os
6 6
7 from telemetry.core.platform import tracing_category_filter 7 from telemetry.core.platform import tracing_category_filter
8 from telemetry.core.platform import tracing_options 8 from telemetry.core.platform import tracing_options
9 from telemetry.page import action_runner 9 from telemetry.page import action_runner
10 from telemetry.page import page_test 10 from telemetry.page import page_test
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 127
128 gc_time = 0 128 gc_time = 0
129 for key in values: 129 for key in values:
130 gc_time += sum(values[key]) 130 gc_time += sum(values[key])
131 results.AddValue(scalar.ScalarValue(page, 'oilpan_gc', unit, gc_time)) 131 results.AddValue(scalar.ScalarValue(page, 'oilpan_gc', unit, gc_time))
132 132
133 133
134 class _OilpanGCTimesBase(page_test.PageTest): 134 class _OilpanGCTimesBase(page_test.PageTest):
135 def __init__(self, action_name=''): 135 def __init__(self, action_name=''):
136 super(_OilpanGCTimesBase, self).__init__(action_name) 136 super(_OilpanGCTimesBase, self).__init__(action_name)
137 self._timeline_model = None
138 137
139 def WillNavigateToPage(self, page, tab): 138 def WillNavigateToPage(self, page, tab):
140 # FIXME: Remove webkit.console when blink.console lands in chromium and 139 # FIXME: Remove webkit.console when blink.console lands in chromium and
141 # the ref builds are updated. crbug.com/386847 140 # the ref builds are updated. crbug.com/386847
142 categories = ['webkit.console', 'blink.console', 'blink_gc'] 141 categories = ['webkit.console', 'blink.console', 'blink_gc']
143 category_filter = tracing_category_filter.TracingCategoryFilter() 142 category_filter = tracing_category_filter.TracingCategoryFilter()
144 for c in categories: 143 for c in categories:
145 category_filter.AddIncludedCategory(c) 144 category_filter.AddIncludedCategory(c)
146 options = tracing_options.TracingOptions() 145 options = tracing_options.TracingOptions()
147 options.enable_chrome_trace = True 146 options.enable_chrome_trace = True
148 tab.browser.platform.tracing_controller.Start(options, category_filter, 147 tab.browser.platform.tracing_controller.Start(options, category_filter,
149 timeout=1000) 148 timeout=1000)
150 149
151 def DidRunActions(self, page, tab): 150 def ValidateAndMeasurePage(self, page, tab, results):
152 timeline_data = tab.browser.platform.tracing_controller.Stop() 151 timeline_data = tab.browser.platform.tracing_controller.Stop()
153 self._timeline_model = TimelineModel(timeline_data) 152 timeline_model = TimelineModel(timeline_data)
154 153 threads = timeline_model.GetAllThreads()
155 def ValidateAndMeasurePage(self, page, tab, results):
156 threads = self._timeline_model.GetAllThreads()
157 for thread in threads: 154 for thread in threads:
158 if thread.name == _CR_RENDERER_MAIN: 155 if thread.name == _CR_RENDERER_MAIN:
159 _AddTracingResults(thread, results) 156 _AddTracingResults(thread, results)
160 157
161 def CleanUpAfterPage(self, page, tab): 158 def CleanUpAfterPage(self, page, tab):
162 if tab.browser.platform.tracing_controller.is_tracing_running: 159 if tab.browser.platform.tracing_controller.is_tracing_running:
163 tab.browser.platform.tracing_controller.Stop() 160 tab.browser.platform.tracing_controller.Stop()
164 161
165 162
166 class OilpanGCTimesForSmoothness(_OilpanGCTimesBase): 163 class OilpanGCTimesForSmoothness(_OilpanGCTimesBase):
167 def __init__(self): 164 def __init__(self):
168 super(OilpanGCTimesForSmoothness, self).__init__() 165 super(OilpanGCTimesForSmoothness, self).__init__()
169 self._interaction = None 166 self._interaction = None
170 167
171 def DidNavigateToPage(self, page, tab): 168 def DidNavigateToPage(self, page, tab):
172 runner = action_runner.ActionRunner(tab) 169 runner = action_runner.ActionRunner(tab)
173 self._interaction = runner.CreateInteraction(_RUN_SMOOTH_ACTIONS) 170 self._interaction = runner.CreateInteraction(_RUN_SMOOTH_ACTIONS)
174 self._interaction.Begin() 171 self._interaction.Begin()
175 172
176 def DidRunActions(self, page, tab): 173 def ValidateAndMeasurePage(self, page, tab, results):
177 self._interaction.End() 174 self._interaction.End()
178 super(OilpanGCTimesForSmoothness, self).DidRunActions(page, tab) 175 super(OilpanGCTimesForSmoothness, self).ValidateAndMeasurePage(
176 page, tab, results)
179 177
180 178
181 class OilpanGCTimesForBlinkPerf(_OilpanGCTimesBase): 179 class OilpanGCTimesForBlinkPerf(_OilpanGCTimesBase):
182 def __init__(self): 180 def __init__(self):
183 super(OilpanGCTimesForBlinkPerf, self).__init__() 181 super(OilpanGCTimesForBlinkPerf, self).__init__()
184 with open(os.path.join(os.path.dirname(__file__), '..', 'benchmarks', 182 with open(os.path.join(os.path.dirname(__file__), '..', 'benchmarks',
185 'blink_perf.js'), 'r') as f: 183 'blink_perf.js'), 'r') as f:
186 self._blink_perf_js = f.read() 184 self._blink_perf_js = f.read()
187 185
188 def WillNavigateToPage(self, page, tab): 186 def WillNavigateToPage(self, page, tab):
189 page.script_to_evaluate_on_commit = self._blink_perf_js 187 page.script_to_evaluate_on_commit = self._blink_perf_js
190 super(OilpanGCTimesForBlinkPerf, self).WillNavigateToPage(page, tab) 188 super(OilpanGCTimesForBlinkPerf, self).WillNavigateToPage(page, tab)
191 189
192 def DidRunActions(self, page, tab): 190 def ValidateAndMeasurePage(self, page, tab, results):
193 tab.WaitForJavaScriptExpression('testRunner.isDone', 600) 191 tab.WaitForJavaScriptExpression('testRunner.isDone', 600)
194 super(OilpanGCTimesForBlinkPerf, self).DidRunActions(page, tab) 192 super(OilpanGCTimesForBlinkPerf, self).ValidateAndMeasurePage(
193 page, tab, results)
195 194
196 195
197 class OilpanGCTimesForInternals(OilpanGCTimesForBlinkPerf): 196 class OilpanGCTimesForInternals(OilpanGCTimesForBlinkPerf):
198 def __init__(self): 197 def __init__(self):
199 super(OilpanGCTimesForInternals, self).__init__() 198 super(OilpanGCTimesForInternals, self).__init__()
200 199
201 @classmethod 200 @classmethod
202 def CustomizeBrowserOptions(cls, options): 201 def CustomizeBrowserOptions(cls, options):
203 # 'expose-internals-for-testing' can be enabled on content shell. 202 # 'expose-internals-for-testing' can be enabled on content shell.
204 assert 'content-shell' in options.browser_type 203 assert 'content-shell' in options.browser_type
205 options.AppendExtraBrowserArgs(['--expose-internals-for-testing', 204 options.AppendExtraBrowserArgs(['--expose-internals-for-testing',
206 '--js-flags=--expose-gc']) 205 '--js-flags=--expose-gc'])
OLDNEW
« no previous file with comments | « no previous file | tools/perf/measurements/oilpan_gc_times_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698