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

Side by Side Diff: tracing/tracing/metrics/v8/gc_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
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/metrics/v8/utils.html"> 10 <link rel="import" href="/tracing/metrics/v8/utils.html">
(...skipping 19 matching lines...) Expand all
30 addTotalIdleTimesOfTopEvents(values, model); 30 addTotalIdleTimesOfTopEvents(values, model);
31 addV8ExecuteMutatorUtilization(values, model); 31 addV8ExecuteMutatorUtilization(values, model);
32 } 32 }
33 33
34 tr.metrics.MetricRegistry.register(gcMetric); 34 tr.metrics.MetricRegistry.register(gcMetric);
35 35
36 var timeDurationInMs_smallerIsBetter = 36 var timeDurationInMs_smallerIsBetter =
37 tr.v.Unit.byName.timeDurationInMs_smallerIsBetter; 37 tr.v.Unit.byName.timeDurationInMs_smallerIsBetter;
38 var percentage_biggerIsBetter = 38 var percentage_biggerIsBetter =
39 tr.v.Unit.byName.normalizedPercentage_biggerIsBetter; 39 tr.v.Unit.byName.normalizedPercentage_biggerIsBetter;
40 var PERCENTAGE_BUILDER = tr.v.NumericBuilder.createLinear(
41 percentage_biggerIsBetter, tr.b.Range.fromExplicitRange(0, 1), 20);
42 40
43 var numericBuilder = new tr.v.NumericBuilder(
44 timeDurationInMs_smallerIsBetter, 0);
45 // 0.1 steps from 0 to 20 since it is the most common range. 41 // 0.1 steps from 0 to 20 since it is the most common range.
46 numericBuilder.addLinearBins(20, 200);
47 // Exponentially increasing steps from 20 to 200. 42 // Exponentially increasing steps from 20 to 200.
48 numericBuilder.addExponentialBins(200, 100); 43 var CUSTOM_BOUNDARIES = tr.v.HistogramBinBoundaries.createLinear(0, 20, 200)
44 .addExponentialBins(200, 100);
49 45
50 function createNumericForTopEventTime() { 46 function createNumericForTopEventTime() {
51 var n = numericBuilder.build(); 47 var n = new tr.v.Histogram(
48 timeDurationInMs_smallerIsBetter, CUSTOM_BOUNDARIES);
52 n.customizeSummaryOptions({ 49 n.customizeSummaryOptions({
53 avg: true, 50 avg: true,
54 count: true, 51 count: true,
55 max: true, 52 max: true,
56 min: false, 53 min: false,
57 std: true, 54 std: true,
58 sum: true, 55 sum: true,
59 percentile: [0.90]}); 56 percentile: [0.90]});
60 return n; 57 return n;
61 } 58 }
62 59
63 function createNumericForSubEventTime() { 60 function createNumericForSubEventTime() {
64 var n = numericBuilder.build(); 61 var n = new tr.v.Histogram(
62 timeDurationInMs_smallerIsBetter, CUSTOM_BOUNDARIES);
65 n.customizeSummaryOptions({ 63 n.customizeSummaryOptions({
66 avg: true, 64 avg: true,
67 count: false, 65 count: false,
68 max: true, 66 max: true,
69 min: false, 67 min: false,
70 std: false, 68 std: false,
71 sum: false, 69 sum: false,
72 percentile: [0.90] 70 percentile: [0.90]
73 }); 71 });
74 return n; 72 return n;
75 } 73 }
76 74
77 function createNumericForIdleTime() { 75 function createNumericForIdleTime() {
78 var n = numericBuilder.build(); 76 var n = new tr.v.Histogram(
77 timeDurationInMs_smallerIsBetter, CUSTOM_BOUNDARIES);
79 n.customizeSummaryOptions({ 78 n.customizeSummaryOptions({
80 avg: true, 79 avg: true,
81 count: false, 80 count: false,
82 max: true, 81 max: true,
83 min: false, 82 min: false,
84 std: false, 83 std: false,
85 sum: true, 84 sum: true,
86 percentile: [] 85 percentile: []
87 }); 86 });
88 return n; 87 return n;
89 } 88 }
90 89
91 function createPercentage(numerator, denominator) { 90 function createPercentage(numerator, denominator) {
92 var hist = PERCENTAGE_BUILDER.build(); 91 var hist = new tr.v.Histogram(percentage_biggerIsBetter);
93 if (denominator === 0) 92 if (denominator === 0)
94 hist.add(0); 93 hist.add(0);
95 else 94 else
96 hist.add(numerator / denominator); 95 hist.add(numerator / denominator);
97 return hist; 96 return hist;
98 } 97 }
99 98
100 function isNotForcedTopGarbageCollectionEvent(event) { 99 function isNotForcedTopGarbageCollectionEvent(event) {
101 // We exclude garbage collection events forced by benchmark runner, 100 // We exclude garbage collection events forced by benchmark runner,
102 // because they cannot happen in real world. 101 // because they cannot happen in real world.
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 end: e.end - topEvent.start + time }); 253 end: e.end - topEvent.start + time });
255 } 254 }
256 } 255 }
257 time += topEvent.duration; 256 time += topEvent.duration;
258 } 257 }
259 // Now we have one big v8.execute interval from 0 to |time| and 258 // Now we have one big v8.execute interval from 0 to |time| and
260 // a list of GC pauses. 259 // a list of GC pauses.
261 var mutatorUtilization = tr.metrics.v8.utils.mutatorUtilization( 260 var mutatorUtilization = tr.metrics.v8.utils.mutatorUtilization(
262 0, time, WINDOW_SIZE_MS, pauses); 261 0, time, WINDOW_SIZE_MS, pauses);
263 [0.90, 0.95, 0.99].forEach(function(percent) { 262 [0.90, 0.95, 0.99].forEach(function(percent) {
264 var hist = PERCENTAGE_BUILDER.build(); 263 var hist = new tr.v.Histogram(percentage_biggerIsBetter);
265 hist.add(mutatorUtilization.percentile(1.0 - percent)); 264 hist.add(mutatorUtilization.percentile(1.0 - percent));
266 values.addValue(new tr.v.NumericValue( 265 values.addValue(new tr.v.NumericValue(
267 'v8-execute-mutator-utilization_pct_0' + percent * 100, 266 'v8-execute-mutator-utilization_pct_0' + percent * 100,
268 hist)); 267 hist));
269 }); 268 });
270 var hist = PERCENTAGE_BUILDER.build(); 269 var hist = new tr.v.Histogram(percentage_biggerIsBetter);
271 hist.add(mutatorUtilization.min); 270 hist.add(mutatorUtilization.min);
272 values.addValue(new tr.v.NumericValue( 271 values.addValue(new tr.v.NumericValue(
273 'v8-execute-mutator-utilization_min', hist)); 272 'v8-execute-mutator-utilization_min', hist));
274 } 273 }
275 ); 274 );
276 } 275 }
277 276
278 return { 277 return {
279 gcMetric: gcMetric, 278 gcMetric: gcMetric,
280 WINDOW_SIZE_MS: WINDOW_SIZE_MS // For testing purposes only. 279 WINDOW_SIZE_MS: WINDOW_SIZE_MS // For testing purposes only.
281 }; 280 };
282 }); 281 });
283 </script> 282 </script>
OLDNEW
« no previous file with comments | « tracing/tracing/metrics/v8/execution_metric.html ('k') | tracing/tracing/value/diagnostics/composition.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698