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

Side by Side Diff: tracing/tracing/ui/analysis/multi_event_summary_table.html

Issue 2771723003: [tracing] Move math utilities from base into their own subdirectory (attempt 2) (Closed)
Patch Set: rebase Created 3 years, 9 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 (c) 2013 The Chromium Authors. All rights reserved. 3 Copyright (c) 2013 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 <link rel="import" href="/tracing/base/iteration_helpers.html"> 9 <link rel="import" href="/tracing/base/iteration_helpers.html">
10 <link rel="import" href="/tracing/base/range.html"> 10 <link rel="import" href="/tracing/base/math/range.html">
11 <link rel="import" href="/tracing/base/statistics.html"> 11 <link rel="import" href="/tracing/base/math/statistics.html">
12 <link rel="import" href="/tracing/base/unit.html"> 12 <link rel="import" href="/tracing/base/unit.html">
13 <link rel="import" href="/tracing/model/event_set.html"> 13 <link rel="import" href="/tracing/model/event_set.html">
14 <link rel="import" href="/tracing/ui/analysis/analysis_link.html"> 14 <link rel="import" href="/tracing/ui/analysis/analysis_link.html">
15 <link rel="import" href="/tracing/ui/analysis/multi_event_summary.html"> 15 <link rel="import" href="/tracing/ui/analysis/multi_event_summary.html">
16 <link rel="import" href="/tracing/ui/base/table.html"> 16 <link rel="import" href="/tracing/ui/base/table.html">
17 <link rel="import" href="/tracing/value/ui/scalar_span.html"> 17 <link rel="import" href="/tracing/value/ui/scalar_span.html">
18 18
19 <dom-module id='tr-ui-a-multi-event-summary-table'> 19 <dom-module id='tr-ui-a-multi-event-summary-table'>
20 <template> 20 <template>
21 <style> 21 <style>
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 return rowA.title.localeCompare(rowB.title); 79 return rowA.title.localeCompare(rowB.title);
80 } 80 }
81 }); 81 });
82 if (this.eventsHaveDuration_) { 82 if (this.eventsHaveDuration_) {
83 columns.push({ 83 columns.push({
84 title: 'Wall Duration', 84 title: 'Wall Duration',
85 value: function(row) { 85 value: function(row) {
86 return tr.v.ui.createScalarSpan(row.duration, { 86 return tr.v.ui.createScalarSpan(row.duration, {
87 unit: tr.b.Unit.byName.timeDurationInMs, 87 unit: tr.b.Unit.byName.timeDurationInMs,
88 customContextRange: row.totalsRow ? undefined : 88 customContextRange: row.totalsRow ? undefined :
89 tr.b.Range.fromExplicitRange(0, maxValues.duration), 89 tr.b.math.Range.fromExplicitRange(0, maxValues.duration),
90 ownerDocument: ownerDocument, 90 ownerDocument: ownerDocument,
91 }); 91 });
92 }, 92 },
93 width: '<upated further down>', 93 width: '<upated further down>',
94 cmp: function(rowA, rowB) { 94 cmp: function(rowA, rowB) {
95 return rowA.duration - rowB.duration; 95 return rowA.duration - rowB.duration;
96 } 96 }
97 }); 97 });
98 } 98 }
99 99
100 if (this.eventsHaveDuration_ && hasCpuData) { 100 if (this.eventsHaveDuration_ && hasCpuData) {
101 columns.push({ 101 columns.push({
102 title: 'CPU Duration', 102 title: 'CPU Duration',
103 value: function(row) { 103 value: function(row) {
104 return tr.v.ui.createScalarSpan(row.cpuDuration, { 104 return tr.v.ui.createScalarSpan(row.cpuDuration, {
105 unit: tr.b.Unit.byName.timeDurationInMs, 105 unit: tr.b.Unit.byName.timeDurationInMs,
106 customContextRange: row.totalsRow ? undefined : 106 customContextRange: row.totalsRow ? undefined :
107 tr.b.Range.fromExplicitRange(0, maxValues.cpuDuration), 107 tr.b.math.Range.fromExplicitRange(0, maxValues.cpuDuration),
108 ownerDocument: ownerDocument, 108 ownerDocument: ownerDocument,
109 }); 109 });
110 }, 110 },
111 width: '<upated further down>', 111 width: '<upated further down>',
112 cmp: function(rowA, rowB) { 112 cmp: function(rowA, rowB) {
113 return rowA.cpuDuration - rowB.cpuDuration; 113 return rowA.cpuDuration - rowB.cpuDuration;
114 } 114 }
115 }); 115 });
116 } 116 }
117 117
118 if (this.eventsHaveSubRows_ && this.eventsHaveDuration_) { 118 if (this.eventsHaveSubRows_ && this.eventsHaveDuration_) {
119 columns.push({ 119 columns.push({
120 title: 'Self time', 120 title: 'Self time',
121 value: function(row) { 121 value: function(row) {
122 return tr.v.ui.createScalarSpan(row.selfTime, { 122 return tr.v.ui.createScalarSpan(row.selfTime, {
123 unit: tr.b.Unit.byName.timeDurationInMs, 123 unit: tr.b.Unit.byName.timeDurationInMs,
124 customContextRange: row.totalsRow ? undefined : 124 customContextRange: row.totalsRow ? undefined :
125 tr.b.Range.fromExplicitRange(0, maxValues.selfTime), 125 tr.b.math.Range.fromExplicitRange(0, maxValues.selfTime),
126 ownerDocument: ownerDocument, 126 ownerDocument: ownerDocument,
127 }); 127 });
128 }, 128 },
129 width: '<upated further down>', 129 width: '<upated further down>',
130 cmp: function(rowA, rowB) { 130 cmp: function(rowA, rowB) {
131 return rowA.selfTime - rowB.selfTime; 131 return rowA.selfTime - rowB.selfTime;
132 } 132 }
133 }); 133 });
134 } 134 }
135 135
136 if (this.eventsHaveSubRows_ && this.eventsHaveDuration_ && hasCpuData) { 136 if (this.eventsHaveSubRows_ && this.eventsHaveDuration_ && hasCpuData) {
137 columns.push({ 137 columns.push({
138 title: 'CPU Self Time', 138 title: 'CPU Self Time',
139 value: function(row) { 139 value: function(row) {
140 return tr.v.ui.createScalarSpan(row.cpuSelfTime, { 140 return tr.v.ui.createScalarSpan(row.cpuSelfTime, {
141 unit: tr.b.Unit.byName.timeDurationInMs, 141 unit: tr.b.Unit.byName.timeDurationInMs,
142 customContextRange: row.totalsRow ? undefined : 142 customContextRange: row.totalsRow ? undefined :
143 tr.b.Range.fromExplicitRange(0, maxValues.cpuSelfTime), 143 tr.b.math.Range.fromExplicitRange(0, maxValues.cpuSelfTime),
144 ownerDocument: ownerDocument, 144 ownerDocument: ownerDocument,
145 }); 145 });
146 }, 146 },
147 width: '<upated further down>', 147 width: '<upated further down>',
148 cmp: function(rowA, rowB) { 148 cmp: function(rowA, rowB) {
149 return rowA.cpuSelfTime - rowB.cpuSelfTime; 149 return rowA.cpuSelfTime - rowB.cpuSelfTime;
150 } 150 }
151 }); 151 });
152 } 152 }
153 153
154 if (this.eventsHaveDuration_) { 154 if (this.eventsHaveDuration_) {
155 columns.push({ 155 columns.push({
156 title: 'Average ' + (hasCpuData ? 'CPU' : 'Wall') + ' Duration', 156 title: 'Average ' + (hasCpuData ? 'CPU' : 'Wall') + ' Duration',
157 value: function(row) { 157 value: function(row) {
158 var totalDuration = hasCpuData ? row.cpuDuration : row.duration; 158 var totalDuration = hasCpuData ? row.cpuDuration : row.duration;
159 return tr.v.ui.createScalarSpan(totalDuration / row.numEvents, { 159 return tr.v.ui.createScalarSpan(totalDuration / row.numEvents, {
160 unit: tr.b.Unit.byName.timeDurationInMs, 160 unit: tr.b.Unit.byName.timeDurationInMs,
161 customContextRange: row.totalsRow ? undefined : 161 customContextRange: row.totalsRow ? undefined :
162 tr.b.Range.fromExplicitRange(0, maxValues.duration), 162 tr.b.math.Range.fromExplicitRange(0, maxValues.duration),
163 ownerDocument: ownerDocument, 163 ownerDocument: ownerDocument,
164 }); 164 });
165 }, 165 },
166 width: '<upated further down>', 166 width: '<upated further down>',
167 cmp: function(rowA, rowB) { 167 cmp: function(rowA, rowB) {
168 if (hasCpuData) { 168 if (hasCpuData) {
169 return rowA.cpuDuration / rowA.numEvents - 169 return rowA.cpuDuration / rowA.numEvents -
170 rowB.cpuDuration / rowB.numEvents; 170 rowB.cpuDuration / rowB.numEvents;
171 } 171 }
172 return rowA.duration / rowA.numEvents - 172 return rowA.duration / rowA.numEvents -
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 306
307 var maxValues = { 307 var maxValues = {
308 duration: undefined, 308 duration: undefined,
309 selfTime: undefined, 309 selfTime: undefined,
310 cpuSelfTime: undefined, 310 cpuSelfTime: undefined,
311 cpuDuration: undefined 311 cpuDuration: undefined
312 }; 312 };
313 313
314 if (this.eventsHaveDuration) { 314 if (this.eventsHaveDuration) {
315 for (var column in maxValues) { 315 for (var column in maxValues) {
316 maxValues[column] = tr.b.Statistics.max(rows, function(event) { 316 maxValues[column] = tr.b.math.Statistics.max(rows, function(event) {
317 return event[column]; 317 return event[column];
318 }); 318 });
319 } 319 }
320 } 320 }
321 321
322 var footerRows = []; 322 var footerRows = [];
323 323
324 if (this.showTotals_) { 324 if (this.showTotals_) {
325 var multiEventSummary = new tr.ui.analysis.MultiEventSummary( 325 var multiEventSummary = new tr.ui.analysis.MultiEventSummary(
326 'Totals', allEvents); 326 'Totals', allEvents);
327 footerRows.push(multiEventSummary); 327 footerRows.push(multiEventSummary);
328 } 328 }
329 329
330 330
331 this.updateTableColumns_(rows, maxValues); 331 this.updateTableColumns_(rows, maxValues);
332 this.$.table.tableRows = rows; 332 this.$.table.tableRows = rows;
333 333
334 // TODO(selection bounds). 334 // TODO(selection bounds).
335 335
336 // TODO(sorting) 336 // TODO(sorting)
337 337
338 this.$.table.footerRows = footerRows; 338 this.$.table.footerRows = footerRows;
339 this.$.table.rebuild(); 339 this.$.table.rebuild();
340 } 340 }
341 }); 341 });
342 </script> 342 </script>
OLDNEW
« no previous file with comments | « tracing/tracing/ui/analysis/multi_event_summary.html ('k') | tracing/tracing/ui/analysis/multi_object_sub_view.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698