Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 | 4 |
| 5 import time | 5 import time |
| 6 | 6 |
| 7 from metrics import smoothness | 7 from metrics import smoothness |
| 8 from telemetry.page import page_measurement | 8 from telemetry.page import page_measurement |
| 9 | 9 |
| 10 class StatsCollector(object): | 10 class StatsCollector(object): |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 141 # first frame requested has more variance in the number of pixels | 141 # first frame requested has more variance in the number of pixels |
| 142 # rasterized. | 142 # rasterized. |
| 143 tab.ExecuteJavaScript(""" | 143 tab.ExecuteJavaScript(""" |
| 144 window.__rafFired = false; | 144 window.__rafFired = false; |
| 145 window.webkitRequestAnimationFrame(function() { | 145 window.webkitRequestAnimationFrame(function() { |
| 146 chrome.gpuBenchmarking.setNeedsDisplayOnAllLayers(); | 146 chrome.gpuBenchmarking.setNeedsDisplayOnAllLayers(); |
| 147 window.__rafFired = true; | 147 window.__rafFired = true; |
| 148 }); | 148 }); |
| 149 """) | 149 """) |
| 150 | 150 |
| 151 tab.browser.StartTracing('webkit,webkit.console,benchmark', 60) | 151 tab.browser.StartTracing('webkit.console,benchmark', 60) |
| 152 self._metrics.Start() | 152 self._metrics.Start() |
| 153 | 153 |
| 154 tab.ExecuteJavaScript(""" | 154 tab.ExecuteJavaScript(""" |
| 155 console.time("measureNextFrame"); | 155 console.time("measureNextFrame"); |
| 156 window.__rafFired = false; | 156 window.__rafFired = false; |
| 157 window.webkitRequestAnimationFrame(function() { | 157 window.webkitRequestAnimationFrame(function() { |
| 158 chrome.gpuBenchmarking.setNeedsDisplayOnAllLayers(); | 158 chrome.gpuBenchmarking.setNeedsDisplayOnAllLayers(); |
| 159 window.__rafFired = true; | 159 window.__rafFired = true; |
| 160 }); | 160 }); |
| 161 """) | 161 """) |
| 162 # Wait until the frame was drawn. | 162 # Wait until the frame was drawn. |
| 163 # Needs to be adjusted for every device and for different | 163 # Needs to be adjusted for every device and for different |
| 164 # raster_record_repeat counts. | 164 # raster_record_repeat counts. |
| 165 # TODO(ernstm): replace by call-back. | 165 # TODO(ernstm): replace by call-back. |
| 166 time.sleep(float(self.options.stop_wait_time)) | 166 time.sleep(float(self.options.stop_wait_time)) |
| 167 tab.ExecuteJavaScript('console.timeEnd("measureNextFrame")') | 167 tab.ExecuteJavaScript('console.timeEnd("measureNextFrame")') |
| 168 | 168 |
| 169 tab.browser.StopTracing() | 169 timeline = tab.browser.StopTracing().AsTimelineModel() |
|
tonyg
2013/09/12 00:49:55
I suspect this line might be a little expensive wh
ernstm
2013/09/12 18:06:07
Done.
| |
| 170 self._metrics.Stop() | 170 self._metrics.Stop() |
| 171 | 171 |
| 172 timeline = tab.browser.GetTraceResultAndReset().AsTimelineModel() | |
| 173 collector = StatsCollector(timeline) | 172 collector = StatsCollector(timeline) |
| 174 collector.GatherRenderingStats() | 173 collector.GatherRenderingStats() |
| 175 | 174 |
| 176 rendering_stats = self._metrics.end_values | 175 rendering_stats = self._metrics.end_values |
| 177 | 176 |
| 178 results.Add('best_rasterize_time', 'seconds', | 177 results.Add('best_rasterize_time', 'seconds', |
| 179 collector.total_best_rasterize_time / 1.e3, | 178 collector.total_best_rasterize_time / 1.e3, |
| 180 data_type='unimportant') | 179 data_type='unimportant') |
| 181 results.Add('best_record_time', 'seconds', | 180 results.Add('best_record_time', 'seconds', |
| 182 collector.total_best_record_time / 1.e3, | 181 collector.total_best_record_time / 1.e3, |
| 183 data_type='unimportant') | 182 data_type='unimportant') |
| 184 results.Add('total_pixels_rasterized', 'pixels', | 183 results.Add('total_pixels_rasterized', 'pixels', |
| 185 collector.total_pixels_rasterized, | 184 collector.total_pixels_rasterized, |
| 186 data_type='unimportant') | 185 data_type='unimportant') |
| 187 results.Add('total_pixels_recorded', 'pixels', | 186 results.Add('total_pixels_recorded', 'pixels', |
| 188 collector.total_pixels_recorded, | 187 collector.total_pixels_recorded, |
| 189 data_type='unimportant') | 188 data_type='unimportant') |
| 190 | 189 |
| 191 if self.options.report_all_results: | 190 if self.options.report_all_results: |
| 192 for k, v in rendering_stats.iteritems(): | 191 for k, v in rendering_stats.iteritems(): |
| 193 results.Add(k, '', v) | 192 results.Add(k, '', v) |
| OLD | NEW |