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

Side by Side Diff: tools/perf/measurements/v8_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
OLDNEW
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 from telemetry.core.platform import tracing_category_filter 5 from telemetry.core.platform import tracing_category_filter
6 from telemetry.core.platform import tracing_options 6 from telemetry.core.platform import tracing_options
7 from telemetry.page import page_test 7 from telemetry.page import page_test
8 from telemetry.timeline.model import TimelineModel 8 from telemetry.timeline.model import TimelineModel
9 from telemetry.util import statistics 9 from telemetry.util import statistics
10 from telemetry.value import scalar 10 from telemetry.value import scalar
11 11
12 12
13 class V8GCTimes(page_test.PageTest): 13 class V8GCTimes(page_test.PageTest):
14 14
15 _TIME_OUT_IN_SECONDS = 60 15 _TIME_OUT_IN_SECONDS = 60
16 _CATEGORIES = ['blink.console', 16 _CATEGORIES = ['blink.console',
17 'renderer.scheduler', 17 'renderer.scheduler',
18 'toplevel', 18 'toplevel',
19 'v8', 19 'v8',
20 'webkit.console'] 20 'webkit.console']
21 _RENDERER_MAIN_THREAD = 'CrRendererMain' 21 _RENDERER_MAIN_THREAD = 'CrRendererMain'
22 _IDLE_TASK_PARENT = 'SingleThreadIdleTaskRunner::RunTask' 22 _IDLE_TASK_PARENT = 'SingleThreadIdleTaskRunner::RunTask'
23 23
24 def __init__(self): 24 def __init__(self):
25 super(V8GCTimes, self).__init__() 25 super(V8GCTimes, self).__init__()
26 self._renderer_process = None
27 26
28 def WillNavigateToPage(self, page, tab): 27 def WillNavigateToPage(self, page, tab):
29 category_filter = tracing_category_filter.TracingCategoryFilter() 28 category_filter = tracing_category_filter.TracingCategoryFilter()
30 29
31 for category in self._CATEGORIES: 30 for category in self._CATEGORIES:
32 category_filter.AddIncludedCategory(category) 31 category_filter.AddIncludedCategory(category)
33 32
34 options = tracing_options.TracingOptions() 33 options = tracing_options.TracingOptions()
35 options.enable_chrome_trace = True 34 options.enable_chrome_trace = True
36 35
37 tab.browser.platform.tracing_controller.Start( 36 tab.browser.platform.tracing_controller.Start(
38 options, category_filter, self._TIME_OUT_IN_SECONDS) 37 options, category_filter, self._TIME_OUT_IN_SECONDS)
39 38
40 def DidRunActions(self, page, tab): 39 def ValidateAndMeasurePage(self, page, tab, results):
41 trace_data = tab.browser.platform.tracing_controller.Stop() 40 trace_data = tab.browser.platform.tracing_controller.Stop()
42 timeline_model = TimelineModel(trace_data) 41 timeline_model = TimelineModel(trace_data)
43 42 renderer_process = timeline_model.GetRendererProcessFromTabId(tab.id)
44 self._renderer_process = timeline_model.GetRendererProcessFromTabId(tab.id) 43 self._AddV8MetricsToResults(renderer_process, results)
45
46 def ValidateAndMeasurePage(self, page, tab, results):
47 self._AddV8MetricsToResults(self._renderer_process, results)
48 44
49 def _AddV8MetricsToResults(self, process, results): 45 def _AddV8MetricsToResults(self, process, results):
50 if process is None: 46 if process is None:
51 return 47 return
52 48
53 for thread in process.threads.values(): 49 for thread in process.threads.values():
54 if thread.name != self._RENDERER_MAIN_THREAD: 50 if thread.name != self._RENDERER_MAIN_THREAD:
55 continue 51 continue
56 52
57 self._AddV8EventStatsToResults(thread, results) 53 self._AddV8EventStatsToResults(thread, results)
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 self.idle_task_overrun_duration = 0.0 183 self.idle_task_overrun_duration = 0.0
188 184
189 @property 185 @property
190 def thread_duration_outside_idle(self): 186 def thread_duration_outside_idle(self):
191 return self.thread_duration - self.thread_duration_inside_idle 187 return self.thread_duration - self.thread_duration_inside_idle
192 188
193 @property 189 @property
194 def percentage_thread_duration_during_idle(self): 190 def percentage_thread_duration_during_idle(self):
195 return statistics.DivideIfPossibleOrZero( 191 return statistics.DivideIfPossibleOrZero(
196 100 * self.thread_duration_inside_idle, self.thread_duration) 192 100 * self.thread_duration_inside_idle, self.thread_duration)
OLDNEW
« no previous file with comments | « tools/perf/measurements/task_execution_time_unittest.py ('k') | tools/perf/measurements/v8_gc_times_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698