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

Side by Side Diff: tracing/tracing/metrics/v8/execution_metric.html

Issue 2162963002: [polymer] Merge of master into polymer10-migration (Closed) Base URL: git@github.com:catapult-project/catapult.git@polymer10-migration
Patch Set: Sync to head Created 4 years, 5 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 <!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 <link rel="import" href="/tracing/base/range.html"> 7 <link rel="import" href="/tracing/base/range.html">
8 <link rel="import" href="/tracing/metrics/metric_registry.html"> 8 <link rel="import" href="/tracing/metrics/metric_registry.html">
9 <link rel="import" href="/tracing/value/numeric.html"> 9 <link rel="import" href="/tracing/value/numeric.html">
10 <link rel="import" href="/tracing/value/unit.html"> 10 <link rel="import" href="/tracing/value/unit.html">
11 <link rel="import" href="/tracing/value/value.html"> 11 <link rel="import" href="/tracing/value/value.html">
12 12
13 <script> 13 <script>
14 'use strict'; 14 'use strict';
15 15
16 tr.exportTo('tr.metrics.v8', function() { 16 tr.exportTo('tr.metrics.v8', function() {
17 var DURATION_NUMERIC_BUILDER = tr.v.NumericBuilder.createLinear( 17 var DURATION_NUMERIC_BUILDER = tr.v.NumericBuilder.createLinear(
18 tr.v.Unit.byName.timeDurationInMs_smallerIsBetter, 18 tr.v.Unit.byName.timeDurationInMs_smallerIsBetter,
19 tr.b.Range.fromExplicitRange(4, 200), 100); 19 tr.b.Range.fromExplicitRange(4, 200), 100);
20 20
21 function computeExecuteMetrics(values, model) { 21 function computeExecuteMetrics(values, model) {
22 var cpuTotalExecution = DURATION_NUMERIC_BUILDER.build(); 22 var cpuTotalExecution = DURATION_NUMERIC_BUILDER.build();
23 var wallTotalExecution = DURATION_NUMERIC_BUILDER.build(); 23 var wallTotalExecution = DURATION_NUMERIC_BUILDER.build();
24 var cpuSelfExecution = DURATION_NUMERIC_BUILDER.build(); 24 var cpuSelfExecution = DURATION_NUMERIC_BUILDER.build();
25 var wallSelfExecution = DURATION_NUMERIC_BUILDER.build(); 25 var wallSelfExecution = DURATION_NUMERIC_BUILDER.build();
26 26
27 model.findTopmostSlicesNamed('V8.Execute', function(e) { 27 for (var e of model.findTopmostSlicesNamed('V8.Execute')) {
28 cpuTotalExecution.add(e.cpuDuration); 28 cpuTotalExecution.add(e.cpuDuration);
29 wallTotalExecution.add(e.duration); 29 wallTotalExecution.add(e.duration);
30 cpuSelfExecution.add(e.cpuSelfTime); 30 cpuSelfExecution.add(e.cpuSelfTime);
31 wallSelfExecution.add(e.selfTime); 31 wallSelfExecution.add(e.selfTime);
32 }); 32 }
33 33
34 values.addValue(new tr.v.NumericValue( 34 values.addValue(new tr.v.NumericValue(
35 'v8_execution_cpu_total', cpuTotalExecution, 35 'v8_execution_cpu_total', cpuTotalExecution,
36 { description: 'cpu total time spent in script execution' })); 36 { description: 'cpu total time spent in script execution' }));
37 values.addValue(new tr.v.NumericValue( 37 values.addValue(new tr.v.NumericValue(
38 'v8_execution_wall_total', wallTotalExecution, 38 'v8_execution_wall_total', wallTotalExecution,
39 { description: 'wall total time spent in script execution' })); 39 { description: 'wall total time spent in script execution' }));
40 values.addValue(new tr.v.NumericValue( 40 values.addValue(new tr.v.NumericValue(
41 'v8_execution_cpu_self', cpuSelfExecution, 41 'v8_execution_cpu_self', cpuSelfExecution,
42 { description: 'cpu self time spent in script execution' })); 42 { description: 'cpu self time spent in script execution' }));
43 values.addValue(new tr.v.NumericValue( 43 values.addValue(new tr.v.NumericValue(
44 'v8_execution_wall_self', wallSelfExecution, 44 'v8_execution_wall_self', wallSelfExecution,
45 { description: 'wall self time spent in script execution' })); 45 { description: 'wall self time spent in script execution' }));
46 } 46 }
47 47
48 function computeParseLazyMetrics(values, model) { 48 function computeParseLazyMetrics(values, model) {
49 var cpuSelfParseLazy = DURATION_NUMERIC_BUILDER.build(); 49 var cpuSelfParseLazy = DURATION_NUMERIC_BUILDER.build();
50 var wallSelfParseLazy = DURATION_NUMERIC_BUILDER.build(); 50 var wallSelfParseLazy = DURATION_NUMERIC_BUILDER.build();
51 51
52 model.findTopmostSlicesNamed('V8.ParseLazyMicroSeconds', function(e) { 52 for (var e of model.findTopmostSlicesNamed('V8.ParseLazyMicroSeconds')) {
53 cpuSelfParseLazy.add(e.cpuSelfTime); 53 cpuSelfParseLazy.add(e.cpuSelfTime);
54 wallSelfParseLazy.add(e.selfTime); 54 wallSelfParseLazy.add(e.selfTime);
55 }); 55 }
56 model.findTopmostSlicesNamed('V8.ParseLazy', function(e) { 56 for (var e of model.findTopmostSlicesNamed('V8.ParseLazy')) {
57 cpuSelfParseLazy.add(e.cpuSelfTime); 57 cpuSelfParseLazy.add(e.cpuSelfTime);
58 wallSelfParseLazy.add(e.selfTime); 58 wallSelfParseLazy.add(e.selfTime);
59 }); 59 }
60 60
61 values.addValue(new tr.v.NumericValue( 61 values.addValue(new tr.v.NumericValue(
62 'v8_parse_lazy_cpu_self', cpuSelfParseLazy, 62 'v8_parse_lazy_cpu_self', cpuSelfParseLazy,
63 { description: 'cpu self time spent performing lazy parsing' })); 63 { description: 'cpu self time spent performing lazy parsing' }));
64 values.addValue(new tr.v.NumericValue( 64 values.addValue(new tr.v.NumericValue(
65 'v8_parse_lazy_wall_self', wallSelfParseLazy, 65 'v8_parse_lazy_wall_self', wallSelfParseLazy,
66 { description: 'wall self time spent performing lazy parsing' })); 66 { description: 'wall self time spent performing lazy parsing' }));
67 } 67 }
68 68
69 function computeCompileFullCodeMetrics(values, model) { 69 function computeCompileFullCodeMetrics(values, model) {
70 var cpuSelfCompileFullCode = DURATION_NUMERIC_BUILDER.build(); 70 var cpuSelfCompileFullCode = DURATION_NUMERIC_BUILDER.build();
71 var wallSelfCompileFullCode = DURATION_NUMERIC_BUILDER.build(); 71 var wallSelfCompileFullCode = DURATION_NUMERIC_BUILDER.build();
72 72
73 model.findTopmostSlicesNamed('V8.CompileFullCode', function(e) { 73 for (var e of model.findTopmostSlicesNamed('V8.CompileFullCode')) {
74 cpuSelfCompileFullCode.add(e.cpuSelfTime); 74 cpuSelfCompileFullCode.add(e.cpuSelfTime);
75 wallSelfCompileFullCode.add(e.selfTime); 75 wallSelfCompileFullCode.add(e.selfTime);
76 }); 76 }
77 77
78 values.addValue(new tr.v.NumericValue( 78 values.addValue(new tr.v.NumericValue(
79 'v8_compile_full_code_cpu_self', 79 'v8_compile_full_code_cpu_self',
80 cpuSelfCompileFullCode, 80 cpuSelfCompileFullCode,
81 { description: 'cpu self time spent performing compiling full code' })); 81 { description: 'cpu self time spent performing compiling full code' }));
82 values.addValue(new tr.v.NumericValue( 82 values.addValue(new tr.v.NumericValue(
83 'v8_compile_full_code_wall_self', 83 'v8_compile_full_code_wall_self',
84 wallSelfCompileFullCode, { 84 wallSelfCompileFullCode, {
85 description: 'wall self time spent performing compiling full code' 85 description: 'wall self time spent performing compiling full code'
86 })); 86 }));
87 } 87 }
88 88
89 function computeCompileIgnitionMetrics(values, model) { 89 function computeCompileIgnitionMetrics(values, model) {
90 var cpuSelfCompileIgnition = DURATION_NUMERIC_BUILDER.build(); 90 var cpuSelfCompileIgnition = DURATION_NUMERIC_BUILDER.build();
91 var wallSelfCompileIgnition = DURATION_NUMERIC_BUILDER.build(); 91 var wallSelfCompileIgnition = DURATION_NUMERIC_BUILDER.build();
92 92
93 model.findTopmostSlicesNamed('V8.CompileIgnition', function(e) { 93 for (var e of model.findTopmostSlicesNamed('V8.CompileIgnition')) {
94 cpuSelfCompileIgnition.add(e.cpuSelfTime); 94 cpuSelfCompileIgnition.add(e.cpuSelfTime);
95 wallSelfCompileIgnition.add(e.selfTime); 95 wallSelfCompileIgnition.add(e.selfTime);
96 }); 96 }
97 97
98 values.addValue(new tr.v.NumericValue( 98 values.addValue(new tr.v.NumericValue(
99 'v8_compile_ignition_cpu_self', 99 'v8_compile_ignition_cpu_self',
100 cpuSelfCompileIgnition, 100 cpuSelfCompileIgnition,
101 { description: 'cpu self time spent in compile ignition' })); 101 { description: 'cpu self time spent in compile ignition' }));
102 values.addValue(new tr.v.NumericValue( 102 values.addValue(new tr.v.NumericValue(
103 'v8_compile_ignition_wall_self', 103 'v8_compile_ignition_wall_self',
104 wallSelfCompileIgnition, { 104 wallSelfCompileIgnition, {
105 description: 'wall self time spent in compile ignition' 105 description: 'wall self time spent in compile ignition'
106 })); 106 }));
107 } 107 }
108 108
109 function computeRecompileMetrics(values, model) { 109 function computeRecompileMetrics(values, model) {
110 var cpuTotalRecompileSynchronous = DURATION_NUMERIC_BUILDER.build(); 110 var cpuTotalRecompileSynchronous = DURATION_NUMERIC_BUILDER.build();
111 var wallTotalRecompileSynchronous = DURATION_NUMERIC_BUILDER.build(); 111 var wallTotalRecompileSynchronous = DURATION_NUMERIC_BUILDER.build();
112 var cpuTotalRecompileConcurrent = DURATION_NUMERIC_BUILDER.build(); 112 var cpuTotalRecompileConcurrent = DURATION_NUMERIC_BUILDER.build();
113 var wallTotalRecompileConcurrent = DURATION_NUMERIC_BUILDER.build(); 113 var wallTotalRecompileConcurrent = DURATION_NUMERIC_BUILDER.build();
114 // TODO(eakuefner): Stop computing overall values once dash v2 is ready. 114 // TODO(eakuefner): Stop computing overall values once dash v2 is ready.
115 // https://github.com/catapult-project/catapult/issues/2180 115 // https://github.com/catapult-project/catapult/issues/2180
116 var cpuTotalRecompileOverall = DURATION_NUMERIC_BUILDER.build(); 116 var cpuTotalRecompileOverall = DURATION_NUMERIC_BUILDER.build();
117 var wallTotalRecompileOverall = DURATION_NUMERIC_BUILDER.build(); 117 var wallTotalRecompileOverall = DURATION_NUMERIC_BUILDER.build();
118 118
119 model.findTopmostSlicesNamed('V8.RecompileSynchronous', function(e) { 119 for (var e of model.findTopmostSlicesNamed('V8.RecompileSynchronous')) {
120 cpuTotalRecompileSynchronous.add(e.cpuDuration); 120 cpuTotalRecompileSynchronous.add(e.cpuDuration);
121 wallTotalRecompileSynchronous.add(e.duration); 121 wallTotalRecompileSynchronous.add(e.duration);
122 cpuTotalRecompileOverall.add(e.cpuDuration); 122 cpuTotalRecompileOverall.add(e.cpuDuration);
123 wallTotalRecompileOverall.add(e.duration); 123 wallTotalRecompileOverall.add(e.duration);
124 }); 124 }
125 125
126 values.addValue(new tr.v.NumericValue( 126 values.addValue(new tr.v.NumericValue(
127 'v8_recompile_synchronous_cpu_total', 127 'v8_recompile_synchronous_cpu_total',
128 cpuTotalRecompileSynchronous, 128 cpuTotalRecompileSynchronous,
129 { description: 'cpu total time spent in synchronous recompilation' })); 129 { description: 'cpu total time spent in synchronous recompilation' }));
130 values.addValue(new tr.v.NumericValue( 130 values.addValue(new tr.v.NumericValue(
131 'v8_recompile_synchronous_wall_total', 131 'v8_recompile_synchronous_wall_total',
132 wallTotalRecompileSynchronous, 132 wallTotalRecompileSynchronous,
133 { description: 'wall total time spent in synchronous recompilation' })); 133 { description: 'wall total time spent in synchronous recompilation' }));
134 134
135 135
136 model.findTopmostSlicesNamed('V8.RecompileConcurrent', function(e) { 136 for (var e of model.findTopmostSlicesNamed('V8.RecompileConcurrent')) {
137 cpuTotalRecompileConcurrent.add(e.cpuDuration); 137 cpuTotalRecompileConcurrent.add(e.cpuDuration);
138 wallTotalRecompileConcurrent.add(e.duration); 138 wallTotalRecompileConcurrent.add(e.duration);
139 cpuTotalRecompileOverall.add(e.cpuDuration); 139 cpuTotalRecompileOverall.add(e.cpuDuration);
140 wallTotalRecompileOverall.add(e.duration); 140 wallTotalRecompileOverall.add(e.duration);
141 }); 141 }
142 142
143 values.addValue(new tr.v.NumericValue( 143 values.addValue(new tr.v.NumericValue(
144 'v8_recompile_concurrent_cpu_total', 144 'v8_recompile_concurrent_cpu_total',
145 cpuTotalRecompileConcurrent, 145 cpuTotalRecompileConcurrent,
146 { description: 'cpu total time spent in concurrent recompilation' })); 146 { description: 'cpu total time spent in concurrent recompilation' }));
147 values.addValue(new tr.v.NumericValue( 147 values.addValue(new tr.v.NumericValue(
148 'v8_recompile_concurrent_wall_total', 148 'v8_recompile_concurrent_wall_total',
149 wallTotalRecompileConcurrent, 149 wallTotalRecompileConcurrent,
150 { description: 'wall total time spent in concurrent recompilation' })); 150 { description: 'wall total time spent in concurrent recompilation' }));
151 values.addValue(new tr.v.NumericValue( 151 values.addValue(new tr.v.NumericValue(
152 'v8_recompile_overall_cpu_total', 152 'v8_recompile_overall_cpu_total',
153 cpuTotalRecompileOverall, { 153 cpuTotalRecompileOverall, {
154 description: 154 description:
155 'cpu total time spent in synchronous or concurrent recompilation' 155 'cpu total time spent in synchronous or concurrent recompilation'
156 })); 156 }));
157 values.addValue(new tr.v.NumericValue( 157 values.addValue(new tr.v.NumericValue(
158 'v8_recompile_overall_wall_total', 158 'v8_recompile_overall_wall_total',
159 wallTotalRecompileOverall, { 159 wallTotalRecompileOverall, {
160 description: 160 description:
161 'wall total time spent in synchronous or concurrent recompilation' 161 'wall total time spent in synchronous or concurrent recompilation'
162 })); 162 }));
163 } 163 }
164 164
165 function computeOptimizeCodeMetrics(values, model) { 165 function computeOptimizeCodeMetrics(values, model) {
166 var cpuTotalOptimizeCode = DURATION_NUMERIC_BUILDER.build(); 166 var cpuTotalOptimizeCode = DURATION_NUMERIC_BUILDER.build();
167 var wallTotalOptimizeCode = DURATION_NUMERIC_BUILDER.build(); 167 var wallTotalOptimizeCode = DURATION_NUMERIC_BUILDER.build();
168 168
169 model.findTopmostSlicesNamed('V8.OptimizeCode', function(e) { 169 for (var e of model.findTopmostSlicesNamed('V8.OptimizeCode')) {
170 cpuTotalOptimizeCode.add(e.cpuDuration); 170 cpuTotalOptimizeCode.add(e.cpuDuration);
171 wallTotalOptimizeCode.add(e.duration); 171 wallTotalOptimizeCode.add(e.duration);
172 }); 172 }
173 173
174 values.addValue(new tr.v.NumericValue( 174 values.addValue(new tr.v.NumericValue(
175 'v8_optimize_code_cpu_total', 175 'v8_optimize_code_cpu_total',
176 cpuTotalOptimizeCode, 176 cpuTotalOptimizeCode,
177 { description: 'cpu total time spent in code optimization' })); 177 { description: 'cpu total time spent in code optimization' }));
178 values.addValue(new tr.v.NumericValue( 178 values.addValue(new tr.v.NumericValue(
179 'v8_optimize_code_wall_total', 179 'v8_optimize_code_wall_total',
180 wallTotalOptimizeCode, 180 wallTotalOptimizeCode,
181 { description: 'wall total time spent in code optimization' })); 181 { description: 'wall total time spent in code optimization' }));
182 } 182 }
183 183
184 function computeDeoptimizeCodeMetrics(values, model) { 184 function computeDeoptimizeCodeMetrics(values, model) {
185 var cpuTotalDeoptimizeCode = DURATION_NUMERIC_BUILDER.build(); 185 var cpuTotalDeoptimizeCode = DURATION_NUMERIC_BUILDER.build();
186 var wallTotalDeoptimizeCode = DURATION_NUMERIC_BUILDER.build(); 186 var wallTotalDeoptimizeCode = DURATION_NUMERIC_BUILDER.build();
187 187
188 model.findTopmostSlicesNamed('V8.DeoptimizeCode', function(e) { 188 for (var e of model.findTopmostSlicesNamed('V8.DeoptimizeCode')) {
189 cpuTotalDeoptimizeCode.add(e.cpuDuration); 189 cpuTotalDeoptimizeCode.add(e.cpuDuration);
190 wallTotalDeoptimizeCode.add(e.duration); 190 wallTotalDeoptimizeCode.add(e.duration);
191 }); 191 }
192 192
193 values.addValue(new tr.v.NumericValue( 193 values.addValue(new tr.v.NumericValue(
194 'v8_deoptimize_code_cpu_total', 194 'v8_deoptimize_code_cpu_total',
195 cpuTotalDeoptimizeCode, 195 cpuTotalDeoptimizeCode,
196 { description: 'cpu total time spent in code deoptimization' })); 196 { description: 'cpu total time spent in code deoptimization' }));
197 values.addValue(new tr.v.NumericValue( 197 values.addValue(new tr.v.NumericValue(
198 'v8_deoptimize_code_wall_total', 198 'v8_deoptimize_code_wall_total',
199 wallTotalDeoptimizeCode, 199 wallTotalDeoptimizeCode,
200 { description: 'wall total time spent in code deoptimization' })); 200 { description: 'wall total time spent in code deoptimization' }));
201 } 201 }
202 202
203 function executionMetric(values, model) { 203 function executionMetric(values, model) {
204 computeExecuteMetrics(values, model); 204 computeExecuteMetrics(values, model);
205 computeParseLazyMetrics(values, model); 205 computeParseLazyMetrics(values, model);
206 computeCompileIgnitionMetrics(values, model); 206 computeCompileIgnitionMetrics(values, model);
207 computeCompileFullCodeMetrics(values, model); 207 computeCompileFullCodeMetrics(values, model);
208 computeRecompileMetrics(values, model); 208 computeRecompileMetrics(values, model);
209 computeOptimizeCodeMetrics(values, model); 209 computeOptimizeCodeMetrics(values, model);
210 computeDeoptimizeCodeMetrics(values, model); 210 computeDeoptimizeCodeMetrics(values, model);
211 } 211 }
212 212
213 tr.metrics.MetricRegistry.register(executionMetric); 213 tr.metrics.MetricRegistry.register(executionMetric);
214 214
215 return { 215 return {
216 executionMetric: executionMetric 216 executionMetric: executionMetric
217 }; 217 };
218 }); 218 });
219 </script> 219 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698