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

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

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

Powered by Google App Engine
This is Rietveld 408576698