OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <!-- | 2 <!-- |
3 Copyright 2016 The Chromium Authors. All rights reserved. | 3 Copyright 2016 The Chromium Authors. All rights reserved. |
4 Use of this source code is governed by a BSD-style license that can be | 4 Use of this source code is governed by a BSD-style license that can be |
5 found in the LICENSE file. | 5 found in the LICENSE file. |
6 --> | 6 --> |
7 | 7 |
8 <link rel="import" href="/tracing/base/base.html"> | 8 <link rel="import" href="/tracing/base/base.html"> |
9 | 9 |
10 <script> | 10 <script> |
11 'use strict'; | 11 'use strict'; |
12 tr.exportTo('tr.v', function() { | 12 tr.exportTo('tr.v', function() { |
| 13 // This information is used to convert results from chart-json format to |
| 14 // Histograms. |
| 15 // Improvement directions are copied from |
| 16 // telemetry/telemetry/value/unit-info.json |
| 17 // but can be overridden by 'improvement_direction' in chart-json. |
13 const LEGACY_UNIT_INFO = new Map(); | 18 const LEGACY_UNIT_INFO = new Map(); |
14 LEGACY_UNIT_INFO.set('%', {name: 'normalizedPercentage'}); | 19 LEGACY_UNIT_INFO.set('%', { |
15 LEGACY_UNIT_INFO.set('', {name: 'unitlessNumber'}); | 20 name: 'normalizedPercentage', |
16 LEGACY_UNIT_INFO.set('Celsius', {name: 'unitlessNumber'}); | 21 defaultImprovementDirection: tr.b.ImprovementDirection.SMALLER_IS_BETTER, |
17 LEGACY_UNIT_INFO.set('Hz', {name: 'unitlessNumber'}); | 22 }); |
18 LEGACY_UNIT_INFO.set('KB', {name: 'sizeInBytes', conversionFactor: 1024}); | 23 LEGACY_UNIT_INFO.set('', { |
| 24 name: 'unitlessNumber', |
| 25 defaultImprovementDirection: tr.b.ImprovementDirection.DONT_CARE, |
| 26 }); |
| 27 LEGACY_UNIT_INFO.set('Celsius', { |
| 28 name: 'unitlessNumber', |
| 29 // Colder machines are faster. |
| 30 defaultImprovementDirection: tr.b.ImprovementDirection.SMALLER_IS_BETTER, |
| 31 }); |
| 32 LEGACY_UNIT_INFO.set('Hz', { |
| 33 name: 'unitlessNumber', |
| 34 // Higher frequencies are faster. |
| 35 defaultImprovementDirection: tr.b.ImprovementDirection.BIGGER_IS_BETTER, |
| 36 }); |
| 37 LEGACY_UNIT_INFO.set('KB', { |
| 38 name: 'sizeInBytes', |
| 39 conversionFactor: 1024, |
| 40 // Less memory usage is better. |
| 41 defaultImprovementDirection: tr.b.ImprovementDirection.SMALLER_IS_BETTER, |
| 42 }); |
19 LEGACY_UNIT_INFO.set('MB', { | 43 LEGACY_UNIT_INFO.set('MB', { |
20 name: 'sizeInBytes', | 44 name: 'sizeInBytes', |
21 conversionFactor: 1024 * 1024, | 45 conversionFactor: 1024 * 1024, |
22 }); | 46 // Less memory usage is better. |
23 LEGACY_UNIT_INFO.set('ObjectsAt30FPS', {name: 'unitlessNumber'}); | 47 defaultImprovementDirection: tr.b.ImprovementDirection.SMALLER_IS_BETTER, |
| 48 }); |
| 49 LEGACY_UNIT_INFO.set('ObjectsAt30FPS', { |
| 50 name: 'unitlessNumber', |
| 51 defaultImprovementDirection: tr.b.ImprovementDirection.BIGGER_IS_BETTER, |
| 52 }); |
24 LEGACY_UNIT_INFO.set('available_kB', { | 53 LEGACY_UNIT_INFO.set('available_kB', { |
25 name: 'sizeInBytes', | 54 name: 'sizeInBytes', |
26 conversionFactor: 1024, | 55 conversionFactor: 1024, |
27 }); | 56 // More memory available is better. |
28 LEGACY_UNIT_INFO.set('bit/s', {name: 'unitlessNumber'}); | 57 defaultImprovementDirection: tr.b.ImprovementDirection.BIGGER_IS_BETTER, |
29 LEGACY_UNIT_INFO.set('bytes', {name: 'sizeInBytes'}); | 58 }); |
30 LEGACY_UNIT_INFO.set('chars/s', {name: 'unitlessNumber'}); | 59 LEGACY_UNIT_INFO.set('bit/s', { |
31 LEGACY_UNIT_INFO.set('commit_count', {name: 'count'}); | 60 name: 'unitlessNumber', |
32 LEGACY_UNIT_INFO.set('count', {name: 'count'}); | 61 // TODO(benjhayden): Which metrics use this? It's the opposite direction |
33 LEGACY_UNIT_INFO.set('coverage%', {name: 'normalizedPercentage'}); | 62 // from 'chars/s'. |
34 LEGACY_UNIT_INFO.set('dB', {name: 'unitlessNumber'}); | 63 defaultImprovementDirection: tr.b.ImprovementDirection.SMALLER_IS_BETTER, |
35 LEGACY_UNIT_INFO.set('files', {name: 'count'}); | 64 }); |
36 LEGACY_UNIT_INFO.set('fps', {name: 'unitlessNumber'}); | 65 LEGACY_UNIT_INFO.set('bytes', { |
37 LEGACY_UNIT_INFO.set('frame_count', {name: 'count'}); | 66 name: 'sizeInBytes', |
38 LEGACY_UNIT_INFO.set('frame_time', {name: 'timeDurationInMs'}); | 67 defaultImprovementDirection: tr.b.ImprovementDirection.SMALLER_IS_BETTER, |
39 LEGACY_UNIT_INFO.set('frames', {name: 'count'}); | 68 }); |
40 LEGACY_UNIT_INFO.set('frames-per-second', {name: 'unitlessNumber'}); | 69 LEGACY_UNIT_INFO.set('chars/s', { |
41 LEGACY_UNIT_INFO.set('garbage_collections', {name: 'count'}); | 70 name: 'unitlessNumber', |
42 LEGACY_UNIT_INFO.set('idle%', {name: 'normalizedPercentage'}); | 71 // TODO(benjhayden): Which metrics use this? It's the opposite direction |
43 LEGACY_UNIT_INFO.set('janks', {name: 'count'}); | 72 // from 'bit/s'. |
44 LEGACY_UNIT_INFO.set('kb', {name: 'sizeInBytes', conversionFactor: 1024}); | 73 defaultImprovementDirection: tr.b.ImprovementDirection.BIGGER_IS_BETTER, |
45 LEGACY_UNIT_INFO.set('lines', {name: 'count'}); | 74 }); |
46 LEGACY_UNIT_INFO.set('mWh', {name: 'energyInJoules', conversionFactor: 3.6}); | 75 LEGACY_UNIT_INFO.set('commit_count', { |
47 LEGACY_UNIT_INFO.set('milliseconds', {name: 'timeDurationInMs'}); | 76 name: 'count', |
48 LEGACY_UNIT_INFO.set('milliseconds-per-frame', {name: 'timeDurationInMs'}); | 77 // layer_tree_host_perftest |
| 78 defaultImprovementDirection: tr.b.ImprovementDirection.BIGGER_IS_BETTER, |
| 79 }); |
| 80 LEGACY_UNIT_INFO.set('count', { |
| 81 name: 'count', |
| 82 // Processes |
| 83 defaultImprovementDirection: tr.b.ImprovementDirection.SMALLER_IS_BETTER, |
| 84 }); |
| 85 LEGACY_UNIT_INFO.set('coverage%', { |
| 86 name: 'normalizedPercentage', |
| 87 // Used in alloy-perf-test/cts%/passed. |
| 88 defaultImprovementDirection: tr.b.ImprovementDirection.BIGGER_IS_BETTER, |
| 89 }); |
| 90 LEGACY_UNIT_INFO.set('dB', { |
| 91 name: 'unitlessNumber', |
| 92 // Decibels peak signal-to-noise ratio. Used by WebRTC quality tests. |
| 93 defaultImprovementDirection: tr.b.ImprovementDirection.BIGGER_IS_BETTER, |
| 94 }); |
| 95 LEGACY_UNIT_INFO.set('files', { |
| 96 name: 'count', |
| 97 // Static initializers |
| 98 defaultImprovementDirection: tr.b.ImprovementDirection.SMALLER_IS_BETTER, |
| 99 }); |
| 100 LEGACY_UNIT_INFO.set('fps', { |
| 101 name: 'unitlessNumber', |
| 102 // Used by scirra benchmark. |
| 103 defaultImprovementDirection: tr.b.ImprovementDirection.BIGGER_IS_BETTER, |
| 104 }); |
| 105 LEGACY_UNIT_INFO.set('frame_count', { |
| 106 name: 'count', |
| 107 // layer_tree_host_perftest |
| 108 defaultImprovementDirection: tr.b.ImprovementDirection.BIGGER_IS_BETTER, |
| 109 }); |
| 110 LEGACY_UNIT_INFO.set('frame_time', { |
| 111 name: 'timeDurationInMs', |
| 112 defaultImprovementDirection: tr.b.ImprovementDirection.SMALLER_IS_BETTER, |
| 113 }); |
| 114 LEGACY_UNIT_INFO.set('frames', { |
| 115 name: 'count', |
| 116 // Dropped frames. |
| 117 defaultImprovementDirection: tr.b.ImprovementDirection.SMALLER_IS_BETTER, |
| 118 }); |
| 119 LEGACY_UNIT_INFO.set('frames-per-second', { |
| 120 name: 'unitlessNumber', |
| 121 defaultImprovementDirection: tr.b.ImprovementDirection.BIGGER_IS_BETTER, |
| 122 }); |
| 123 LEGACY_UNIT_INFO.set('garbage_collections', { |
| 124 name: 'count', |
| 125 // Number of GCs needed to collect an object. Less is better. |
| 126 defaultImprovementDirection: tr.b.ImprovementDirection.SMALLER_IS_BETTER, |
| 127 }); |
| 128 LEGACY_UNIT_INFO.set('idle%', { |
| 129 name: 'normalizedPercentage', |
| 130 // Percentage of work done in idle time. |
| 131 defaultImprovementDirection: tr.b.ImprovementDirection.BIGGER_IS_BETTER, |
| 132 }); |
| 133 LEGACY_UNIT_INFO.set('janks', { |
| 134 name: 'count', |
| 135 defaultImprovementDirection: tr.b.ImprovementDirection.SMALLER_IS_BETTER, |
| 136 }); |
| 137 LEGACY_UNIT_INFO.set('kb', { |
| 138 name: 'sizeInBytes', |
| 139 conversionFactor: 1024, |
| 140 // Less memory usage is better. |
| 141 defaultImprovementDirection: tr.b.ImprovementDirection.SMALLER_IS_BETTER, |
| 142 }); |
| 143 LEGACY_UNIT_INFO.set('lines', { |
| 144 name: 'count', |
| 145 // More test coverage is better. |
| 146 defaultImprovementDirection: tr.b.ImprovementDirection.BIGGER_IS_BETTER, |
| 147 }); |
| 148 LEGACY_UNIT_INFO.set('mWh', { |
| 149 name: 'energyInJoules', |
| 150 conversionFactor: 3.6, |
| 151 defaultImprovementDirection: tr.b.ImprovementDirection.SMALLER_IS_BETTER, |
| 152 }); |
| 153 LEGACY_UNIT_INFO.set('milliseconds', { |
| 154 name: 'timeDurationInMs', |
| 155 defaultImprovementDirection: tr.b.ImprovementDirection.SMALLER_IS_BETTER, |
| 156 }); |
| 157 LEGACY_UNIT_INFO.set('milliseconds-per-frame', { |
| 158 name: 'timeDurationInMs', |
| 159 defaultImprovementDirection: tr.b.ImprovementDirection.SMALLER_IS_BETTER, |
| 160 }); |
49 LEGACY_UNIT_INFO.set('minutes', { | 161 LEGACY_UNIT_INFO.set('minutes', { |
50 name: 'timeDurationInMs', | 162 name: 'timeDurationInMs', |
51 conversionFactor: 60e3, | 163 conversionFactor: 60e3, |
52 }); | 164 // Used for NaCl build time. |
53 LEGACY_UNIT_INFO.set('mips', {name: 'unitlessNumber'}); | 165 defaultImprovementDirection: tr.b.ImprovementDirection.SMALLER_IS_BETTER, |
54 LEGACY_UNIT_INFO.set('mpixels_sec', {name: 'unitlessNumber'}); | 166 }); |
55 LEGACY_UNIT_INFO.set('ms', {name: 'timeDurationInMs'}); | 167 LEGACY_UNIT_INFO.set('mips', { |
56 LEGACY_UNIT_INFO.set('mtri_sec', {name: 'unitlessNumber'}); | 168 name: 'unitlessNumber', |
57 LEGACY_UNIT_INFO.set('mvtx_sec', {name: 'unitlessNumber'}); | 169 // More instructions processed per time unit. |
58 LEGACY_UNIT_INFO.set('objects (bigger is better)', {name: 'count'}); | 170 defaultImprovementDirection: tr.b.ImprovementDirection.BIGGER_IS_BETTER, |
59 LEGACY_UNIT_INFO.set('packets', {name: 'count'}); | 171 }); |
60 LEGACY_UNIT_INFO.set('percent', {name: 'normalizedPercentage'}); | 172 LEGACY_UNIT_INFO.set('mpixels_sec', { |
61 LEGACY_UNIT_INFO.set('points', {name: 'unitlessNumber'}); | 173 name: 'unitlessNumber', |
62 LEGACY_UNIT_INFO.set('ports', {name: 'count'}); | 174 // More pixels processed per time unit. |
63 LEGACY_UNIT_INFO.set('reduction%', {name: 'normalizedPercentage'}); | 175 defaultImprovementDirection: tr.b.ImprovementDirection.BIGGER_IS_BETTER, |
64 LEGACY_UNIT_INFO.set('relocs', {name: 'count'}); | 176 }); |
65 LEGACY_UNIT_INFO.set('runs/s', {name: 'unitlessNumber'}); | 177 LEGACY_UNIT_INFO.set('ms', { |
66 LEGACY_UNIT_INFO.set('runs_per_s', {name: 'unitlessNumber'}); | 178 name: 'timeDurationInMs', |
67 LEGACY_UNIT_INFO.set('runs_per_second', {name: 'unitlessNumber'}); | 179 // Used in many Telemetry measurements. Fewer ms of time means faster. |
68 LEGACY_UNIT_INFO.set('score (bigger is better)', {name: 'unitlessNumber'}); | 180 defaultImprovementDirection: tr.b.ImprovementDirection.SMALLER_IS_BETTER, |
69 LEGACY_UNIT_INFO.set('score', {name: 'unitlessNumber'}); | 181 }); |
70 LEGACY_UNIT_INFO.set('score_(bigger_is_better)', {name: 'unitlessNumber'}); | 182 LEGACY_UNIT_INFO.set('mtri_sec', { |
| 183 name: 'unitlessNumber', |
| 184 // More triangles processed per time unit. |
| 185 defaultImprovementDirection: tr.b.ImprovementDirection.BIGGER_IS_BETTER, |
| 186 }); |
| 187 LEGACY_UNIT_INFO.set('mvtx_sec', { |
| 188 name: 'unitlessNumber', |
| 189 // More vertices processed per time unit. |
| 190 defaultImprovementDirection: tr.b.ImprovementDirection.BIGGER_IS_BETTER, |
| 191 }); |
| 192 LEGACY_UNIT_INFO.set('objects (bigger is better)', { |
| 193 name: 'count', |
| 194 // Used in spaceport benchmark. |
| 195 defaultImprovementDirection: tr.b.ImprovementDirection.BIGGER_IS_BETTER, |
| 196 }); |
| 197 LEGACY_UNIT_INFO.set('packets', { |
| 198 name: 'count', |
| 199 // Monitors how many packets we use to accomplish something. |
| 200 defaultImprovementDirection: tr.b.ImprovementDirection.SMALLER_IS_BETTER, |
| 201 }); |
| 202 LEGACY_UNIT_INFO.set('percent', { |
| 203 name: 'normalizedPercentage', |
| 204 // Synonym for %, used in memory metric for percent fragmentation. |
| 205 defaultImprovementDirection: tr.b.ImprovementDirection.SMALLER_IS_BETTER, |
| 206 }); |
| 207 LEGACY_UNIT_INFO.set('points', { |
| 208 name: 'unitlessNumber', |
| 209 // Synonym for score, used in ChromeOS touchpad tests. |
| 210 defaultImprovementDirection: tr.b.ImprovementDirection.BIGGER_IS_BETTER, |
| 211 }); |
| 212 LEGACY_UNIT_INFO.set('ports', { |
| 213 name: 'count', |
| 214 defaultImprovementDirection: tr.b.ImprovementDirection.SMALLER_IS_BETTER, |
| 215 }); |
| 216 LEGACY_UNIT_INFO.set('reduction%', { |
| 217 name: 'normalizedPercentage', |
| 218 // Used in draw_property measurement to indicate relative improvement. |
| 219 defaultImprovementDirection: tr.b.ImprovementDirection.BIGGER_IS_BETTER, |
| 220 }); |
| 221 LEGACY_UNIT_INFO.set('relocs', { |
| 222 name: 'count', |
| 223 defaultImprovementDirection: tr.b.ImprovementDirection.SMALLER_IS_BETTER, |
| 224 }); |
| 225 LEGACY_UNIT_INFO.set('runs/s', { |
| 226 name: 'unitlessNumber', |
| 227 defaultImprovementDirection: tr.b.ImprovementDirection.BIGGER_IS_BETTER, |
| 228 }); |
| 229 LEGACY_UNIT_INFO.set('runs_per_s', { |
| 230 name: 'unitlessNumber', |
| 231 defaultImprovementDirection: tr.b.ImprovementDirection.BIGGER_IS_BETTER, |
| 232 }); |
| 233 LEGACY_UNIT_INFO.set('runs_per_second', { |
| 234 name: 'unitlessNumber', |
| 235 defaultImprovementDirection: tr.b.ImprovementDirection.BIGGER_IS_BETTER, |
| 236 }); |
| 237 LEGACY_UNIT_INFO.set('score (bigger is better)', { |
| 238 name: 'unitlessNumber', |
| 239 defaultImprovementDirection: tr.b.ImprovementDirection.BIGGER_IS_BETTER, |
| 240 }); |
| 241 LEGACY_UNIT_INFO.set('score', { |
| 242 name: 'unitlessNumber', |
| 243 defaultImprovementDirection: tr.b.ImprovementDirection.BIGGER_IS_BETTER, |
| 244 }); |
| 245 LEGACY_UNIT_INFO.set('score_(bigger_is_better)', { |
| 246 name: 'unitlessNumber', |
| 247 defaultImprovementDirection: tr.b.ImprovementDirection.BIGGER_IS_BETTER, |
| 248 }); |
71 LEGACY_UNIT_INFO.set('seconds', { | 249 LEGACY_UNIT_INFO.set('seconds', { |
72 name: 'timeDurationInMs', | 250 name: 'timeDurationInMs', |
73 conversionFactor: 1e3, | 251 conversionFactor: 1e3, |
74 }); | 252 defaultImprovementDirection: tr.b.ImprovementDirection.SMALLER_IS_BETTER, |
75 LEGACY_UNIT_INFO.set('tokens/s', {name: 'unitlessNumber'}); | 253 }); |
| 254 LEGACY_UNIT_INFO.set('tokens/s', { |
| 255 name: 'unitlessNumber', |
| 256 defaultImprovementDirection: tr.b.ImprovementDirection.BIGGER_IS_BETTER, |
| 257 }); |
76 LEGACY_UNIT_INFO.set('us', { | 258 LEGACY_UNIT_INFO.set('us', { |
77 name: 'timeDurationInMs', | 259 name: 'timeDurationInMs', |
78 conversionFactor: 1e-3, | 260 conversionFactor: 1e-3, |
| 261 defaultImprovementDirection: tr.b.ImprovementDirection.SMALLER_IS_BETTER, |
79 }); | 262 }); |
80 | 263 |
81 return { | 264 return { |
82 LEGACY_UNIT_INFO, | 265 LEGACY_UNIT_INFO, |
83 }; | 266 }; |
84 }); | 267 }); |
85 </script> | 268 </script> |
OLD | NEW |