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

Side by Side Diff: tools/perf/metrics/smoothness_unittest.py

Issue 22475007: telemetry: separated stats collection from metrics calculation. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Made GpuRenderingStats a class. Created 7 years, 4 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 | « tools/perf/metrics/smoothness.py ('k') | tools/perf/run_tests » ('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 2013 The Chromium Authors. All rights reserved. 1 # Copyright 2013 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 unittest 4 import unittest
5 5
6 from metrics import smoothness 6 from metrics import smoothness
7 from metrics.gpu_rendering_stats import GpuRenderingStats
7 from telemetry.page import page 8 from telemetry.page import page
8 from telemetry.page.page_measurement_results import PageMeasurementResults 9 from telemetry.page.page_measurement_results import PageMeasurementResults
9 10
10 class SmoothnessMetricsUnitTest(unittest.TestCase): 11 class SmoothnessMetricsUnitTest(unittest.TestCase):
12 def testCalcResultsRealRenderStats(self):
13 mock_rendering_stats_deltas = {
14 'totalTimeInSeconds': 1.0,
15 'numFramesSentToScreen': 100,
16 'droppedFrameCount': 20,
17 'numImplThreadScrolls': 50,
18 'numMainThreadScrolls': 50,
19 'numLayersDrawn': 240,
20 'numMissingTiles': 10,
21 'textureUploadCount': 120,
22 'totalTextureUploadTimeInSeconds': 1.2,
23 'totalCommitCount': 130,
24 'totalCommitTimeInSeconds': 1.3,
25 'totalDeferredImageDecodeCount': 140,
26 'totalDeferredImageDecodeTimeInSeconds': 1.4,
27 'totalDeferredImageCacheHitCount': 30,
28 'totalImageGatheringCount': 150,
29 'totalImageGatheringTimeInSeconds': 1.5,
30 'totalTilesAnalyzed': 160,
31 'totalTileAnalysisTimeInSeconds': 1.6,
32 'solidColorTilesAnalyzed': 40,
33 'inputEventCount': 170,
34 'totalInputLatency': 1.7,
35 'touchUICount': 180,
36 'totalTouchUILatency': 1.8,
37 'touchAckedCount': 190,
38 'totalTouchAckedLatency': 1.9,
39 'scrollUpdateCount': 200,
40 'totalScrollUpdateLatency': 2.0}
41 stats = GpuRenderingStats(mock_rendering_stats_deltas)
11 42
12 def testCalcResultsFromRAFRenderStats(self):
13 rendering_stats = {'droppedFrameCount': 5,
14 'totalTimeInSeconds': 1,
15 'numAnimationFrames': 10,
16 'numFramesSentToScreen': 10}
17 res = PageMeasurementResults() 43 res = PageMeasurementResults()
18 res.WillMeasurePage(page.Page('http://foo.com/', None)) 44 res.WillMeasurePage(page.Page('http://foo.com/', None))
19 smoothness.CalcScrollResults(rendering_stats, res) 45 smoothness.CalcResults(stats, res)
20 res.DidMeasurePage() 46 res.DidMeasurePage()
21 self.assertEquals(50, res.page_results[0]['dropped_percent'].value) 47
48 # Scroll Results
22 self.assertAlmostEquals( 49 self.assertAlmostEquals(
23 100, 50 1.0 / 100.0 * 1000.0,
24 res.page_results[0]['mean_frame_time'].value, 2) 51 res.page_results[0]['mean_frame_time'].value, 2)
52 self.assertAlmostEquals(
53 20.0 / 100.0 * 100.0,
54 res.page_results[0]['dropped_percent'].value)
55 self.assertAlmostEquals(
56 50.0 / (50.0 + 50.0) * 100.0,
57 res.page_results[0]['percent_impl_scrolled'].value)
58 self.assertAlmostEquals(
59 240.0 / 100.0,
60 res.page_results[0]['average_num_layers_drawn'].value)
61 self.assertAlmostEquals(
62 10.0 / 100.0,
63 res.page_results[0]['average_num_missing_tiles'].value)
25 64
26 def testCalcResultsRealRenderStats(self): 65 # Texture Upload Results
27 rendering_stats = {'numFramesSentToScreen': 60,
28 'globalTotalTextureUploadTimeInSeconds': 0,
29 'totalProcessingCommandsTimeInSeconds': 0,
30 'globalTextureUploadCount': 0,
31 'droppedFrameCount': 0,
32 'textureUploadCount': 0,
33 'numAnimationFrames': 10,
34 'totalPaintTimeInSeconds': 0.35374299999999986,
35 'globalTotalProcessingCommandsTimeInSeconds': 0,
36 'totalTextureUploadTimeInSeconds': 0,
37 'totalRasterizeTimeInSeconds': 0,
38 'totalTimeInSeconds': 1.0}
39 res = PageMeasurementResults()
40 res.WillMeasurePage(page.Page('http://foo.com/', None))
41 smoothness.CalcScrollResults(rendering_stats, res)
42 res.DidMeasurePage()
43 self.assertEquals(0, res.page_results[0]['dropped_percent'].value)
44 self.assertAlmostEquals( 66 self.assertAlmostEquals(
45 1000 / 60., 67 1.3 / 130.0 * 1000.0,
46 res.page_results[0]['mean_frame_time'].value, 2) 68 res.page_results[0]['average_commit_time'].value)
69 self.assertEquals(
70 120,
71 res.page_results[0]['texture_upload_count'].value)
72 self.assertEquals(
73 1.2,
74 res.page_results[0]['total_texture_upload_time'].value)
75
76 # Image Decoding Results
77 self.assertEquals(
78 140,
79 res.page_results[0]['total_deferred_image_decode_count'].value)
80 self.assertEquals(
81 30,
82 res.page_results[0]['total_image_cache_hit_count'].value)
83 self.assertAlmostEquals(
84 1.5 / 150.0 * 1000.0,
85 res.page_results[0]['average_image_gathering_time'].value)
86 self.assertEquals(
87 1.4,
88 res.page_results[0]['total_deferred_image_decoding_time'].value)
89
90 # Tile Analysis Results
91 self.assertEquals(
92 160,
93 res.page_results[0]['total_tiles_analyzed'].value)
94 self.assertEquals(
95 40,
96 res.page_results[0]['solid_color_tiles_analyzed'].value)
97 self.assertAlmostEquals(
98 1.6 / 160.0 * 1000.0,
99 res.page_results[0]['average_tile_analysis_time'].value)
100
101 # Latency Results
102 self.assertAlmostEquals(
103 1.7 / 170.0 * 1000.0,
104 res.page_results[0]['average_latency'].value)
105 self.assertAlmostEquals(
106 1.8 / 180.0 * 1000.0,
107 res.page_results[0]['average_touch_ui_latency'].value)
108 self.assertAlmostEquals(
109 1.9 / 190.0 * 1000.0,
110 res.page_results[0]['average_touch_acked_latency'].value)
111 self.assertAlmostEquals(
112 2.0 / 200.0 * 1000.0,
113 res.page_results[0]['average_scroll_update_latency'].value)
OLDNEW
« no previous file with comments | « tools/perf/metrics/smoothness.py ('k') | tools/perf/run_tests » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698