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

Side by Side Diff: tools/perf/perf_tools/scrolling_benchmark.py

Issue 11028021: cc: Improve frame/commit accounting (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Address comments Created 8 years, 2 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 (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 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 import os 4 import os
5 5
6 from chrome_remote_control import multi_page_benchmark 6 from chrome_remote_control import multi_page_benchmark
7 from chrome_remote_control import util 7 from chrome_remote_control import util
8 8
9 class DidNotScrollException(multi_page_benchmark.MeasurementFailure): 9 class DidNotScrollException(multi_page_benchmark.MeasurementFailure):
10 def __init__(self): 10 def __init__(self):
11 super(DidNotScrollException, self).__init__('Page did not scroll') 11 super(DidNotScrollException, self).__init__('Page did not scroll')
12 12
13 def CalcScrollResults(rendering_stats_deltas, results): 13 def CalcScrollResults(rendering_stats_deltas, results):
14 num_frames_sent_to_screen = rendering_stats_deltas['numFramesSentToScreen'] 14 num_frames_sent_to_screen = rendering_stats_deltas['rendererFrameCount']
15 15
16 mean_frame_time_seconds = ( 16 mean_frame_time_seconds = (
17 rendering_stats_deltas['totalTimeInSeconds'] / 17 rendering_stats_deltas['totalTimeInSeconds'] /
18 float(num_frames_sent_to_screen)) 18 float(num_frames_sent_to_screen))
19 19
20 dropped_percent = ( 20 dropped_percent = (
21 rendering_stats_deltas['droppedFrameCount'] / 21 rendering_stats_deltas['droppedFrameCount'] /
22 float(num_frames_sent_to_screen)) 22 float(rendering_stats_deltas['vsyncCount']))
23 23
24 results.Add('mean_frame_time', 'ms', round(mean_frame_time_seconds * 1000, 3)) 24 results.Add('mean_frame_time', 'ms', round(mean_frame_time_seconds * 1000, 3))
25 results.Add('dropped_percent', '%', round(dropped_percent * 100, 1)) 25 results.Add('dropped_percent', '%', round(dropped_percent * 100, 1))
26 26
27 class ScrollingBenchmark(multi_page_benchmark.MultiPageBenchmark): 27 class ScrollingBenchmark(multi_page_benchmark.MultiPageBenchmark):
28 def __init__(self): 28 def __init__(self):
29 super(ScrollingBenchmark, self).__init__() 29 super(ScrollingBenchmark, self).__init__()
30 30
31 def AddOptions(self, parser): 31 def AddOptions(self, parser):
32 parser.add_option('--no-gpu-benchmarking-extension', action='store_true', 32 parser.add_option('--no-gpu-benchmarking-extension', action='store_true',
(...skipping 29 matching lines...) Expand all
62 tab.runtime.Execute('(function() { var element = document.body; %s})();' % 62 tab.runtime.Execute('(function() { var element = document.body; %s})();' %
63 start_scroll_js) 63 start_scroll_js)
64 64
65 # Poll for scroll benchmark completion. 65 # Poll for scroll benchmark completion.
66 util.WaitFor(lambda: tab.runtime.Evaluate( 66 util.WaitFor(lambda: tab.runtime.Evaluate(
67 'window.__renderingStatsDeltas'), 60) 67 'window.__renderingStatsDeltas'), 60)
68 68
69 rendering_stats_deltas = tab.runtime.Evaluate( 69 rendering_stats_deltas = tab.runtime.Evaluate(
70 'window.__renderingStatsDeltas') 70 'window.__renderingStatsDeltas')
71 71
72 if not (rendering_stats_deltas['numFramesSentToScreen'] > 0): 72 if not (rendering_stats_deltas['rendererFrameCount'] > 0):
73 raise DidNotScrollException() 73 raise DidNotScrollException()
74 return rendering_stats_deltas 74 return rendering_stats_deltas
75 75
76 def CustomizeBrowserOptions(self, options): 76 def CustomizeBrowserOptions(self, options):
77 if not options.no_gpu_benchmarking_extension: 77 if not options.no_gpu_benchmarking_extension:
78 options.extra_browser_args.append('--enable-gpu-benchmarking') 78 options.extra_browser_args.append('--enable-gpu-benchmarking')
79 79
80 def MeasurePage(self, page, tab, results): 80 def MeasurePage(self, page, tab, results):
81 rendering_stats_deltas = self.ScrollPageFully(page, tab) 81 rendering_stats_deltas = self.ScrollPageFully(page, tab)
82 CalcScrollResults(rendering_stats_deltas, results) 82 CalcScrollResults(rendering_stats_deltas, results)
83 if self.options.report_all_results: 83 if self.options.report_all_results:
84 for k, v in rendering_stats_deltas.iteritems(): 84 for k, v in rendering_stats_deltas.iteritems():
85 results.Add(k, '', v) 85 results.Add(k, '', v)
OLDNEW
« no previous file with comments | « content/renderer/render_widget.cc ('k') | tools/perf/perf_tools/scrolling_benchmark_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698