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

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

Issue 3012213002: tracing: Add private footprint (Closed)
Patch Set: Created 3 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 (c) 2015 The Chromium Authors. All rights reserved. 3 Copyright (c) 2015 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/utils.html"> 8 <link rel="import" href="/tracing/base/utils.html">
9 <link rel="import" href="/tracing/core/test_utils.html"> 9 <link rel="import" href="/tracing/core/test_utils.html">
10 <link rel="import" href="/tracing/model/heap_dump.html"> 10 <link rel="import" href="/tracing/model/heap_dump.html">
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 } 64 }
65 65
66 const EXPECTED_COLUMNS = [ 66 const EXPECTED_COLUMNS = [
67 { title: 'Process', type: ProcessNameColumn, noAggregation: true }, 67 { title: 'Process', type: ProcessNameColumn, noAggregation: true },
68 { title: spanMatcher('Total resident'), type: UsedMemoryColumn }, 68 { title: spanMatcher('Total resident'), type: UsedMemoryColumn },
69 { title: spanMatcher('Peak total resident'), type: PeakMemoryColumn }, 69 { title: spanMatcher('Peak total resident'), type: PeakMemoryColumn },
70 { title: spanMatcher('PSS'), type: ByteStatColumn }, 70 { title: spanMatcher('PSS'), type: ByteStatColumn },
71 { title: spanMatcher('Private dirty'), type: ByteStatColumn }, 71 { title: spanMatcher('Private dirty'), type: ByteStatColumn },
72 { title: spanMatcher('Swapped'), type: ByteStatColumn }, 72 { title: spanMatcher('Swapped'), type: ByteStatColumn },
73 { title: spanMatcher('Private'), type: UsedMemoryColumn }, 73 { title: spanMatcher('Private'), type: UsedMemoryColumn },
74 { title: spanMatcher('Private footprint'), type: UsedMemoryColumn },
74 { title: colorLegendMatcher('blink'), type: AllocatorColumn }, 75 { title: colorLegendMatcher('blink'), type: AllocatorColumn },
75 { title: colorLegendMatcher('gpu'), type: AllocatorColumn }, 76 { title: colorLegendMatcher('gpu'), type: AllocatorColumn },
76 { title: colorLegendMatcher('malloc'), type: AllocatorColumn }, 77 { title: colorLegendMatcher('malloc'), type: AllocatorColumn },
77 { title: colorLegendMatcher('oilpan'), type: AllocatorColumn }, 78 { title: colorLegendMatcher('oilpan'), type: AllocatorColumn },
78 { title: colorLegendMatcher('v8'), type: AllocatorColumn }, 79 { title: colorLegendMatcher('v8'), type: AllocatorColumn },
79 { title: spanMatcher('tracing'), type: TracingColumn } 80 { title: spanMatcher('tracing'), type: TracingColumn }
80 ]; 81 ];
81 82
82 function checkRow(columns, row, expectedTitle, expectedSizes, 83 function checkRow(columns, row, expectedTitle, expectedSizes,
83 expectedContexts) { 84 expectedContexts) {
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 212
212 test('instantiate_singleGlobalMemoryDump', function() { 213 test('instantiate_singleGlobalMemoryDump', function() {
213 const processMemoryDumps = convertToProcessMemoryDumps( 214 const processMemoryDumps = convertToProcessMemoryDumps(
214 [tr.ui.analysis.createSingleTestGlobalMemoryDump()]); 215 [tr.ui.analysis.createSingleTestGlobalMemoryDump()]);
215 createAndCheckMemoryDumpOverviewPane(this, 216 createAndCheckMemoryDumpOverviewPane(this,
216 processMemoryDumps, 217 processMemoryDumps,
217 [ // Table rows. 218 [ // Table rows.
218 { 219 {
219 title: colorLegendMatcher('Process 1'), 220 title: colorLegendMatcher('Process 1'),
220 sizes: [[29884416], undefined, [9437184], [5767168], undefined, 221 sizes: [[29884416], undefined, [9437184], [5767168], undefined,
221 undefined, undefined, undefined, [7340032], undefined, 222 undefined, undefined, undefined, undefined, [7340032], undefined,
222 undefined, [2097152]], 223 undefined, [2097152]],
223 contexts: extractProcessMemoryDumps(processMemoryDumps, 1) 224 contexts: extractProcessMemoryDumps(processMemoryDumps, 1)
224 }, 225 },
225 { 226 {
226 title: colorLegendMatcher('Process 2'), 227 title: colorLegendMatcher('Process 2'),
227 sizes: [[17825792], [39845888], [18350080], [0], [32], [8912896], 228 sizes: [[17825792], [39845888], [18350080], [0], [32], [8912896],
228 [7340032], [0], [1048576], [1], [5242880], [1572864]], 229 [15728640], [7340032], [0], [1048576], [1], [5242880],
230 [1572864]],
229 contexts: extractProcessMemoryDumps(processMemoryDumps, 2) 231 contexts: extractProcessMemoryDumps(processMemoryDumps, 2)
230 }, 232 },
231 { 233 {
232 title: colorLegendMatcher('Process 4'), 234 title: colorLegendMatcher('Process 4'),
233 sizes: [undefined, [17825792], undefined, undefined, undefined, 235 sizes: [undefined, [17825792], undefined, undefined, undefined,
234 undefined, undefined, undefined, undefined, undefined, 236 undefined, undefined, undefined, undefined, undefined,
235 undefined, undefined], 237 undefined, undefined, undefined],
236 contexts: extractProcessMemoryDumps(processMemoryDumps, 4) 238 contexts: extractProcessMemoryDumps(processMemoryDumps, 4)
237 } 239 }
238 ], 240 ],
239 [ // Footer rows. 241 [ // Footer rows.
240 { 242 {
241 title: 'Total', 243 title: 'Total',
242 sizes: [[47710208], [57671680], [27787264], [5767168], [32], 244 sizes: [[47710208], [57671680], [27787264], [5767168], [32],
243 [8912896], [7340032], [0], [8388608], [1], [5242880], 245 [8912896], [15728640], [7340032], [0], [8388608], [1],
244 [3670016]], 246 [5242880], [3670016]],
245 contexts: undefined 247 contexts: undefined
246 } 248 }
247 ], 249 ],
248 undefined /* no aggregation */); 250 undefined /* no aggregation */);
249 }); 251 });
250 252
251 test('instantiate_multipleGlobalMemoryDumps', function() { 253 test('instantiate_multipleGlobalMemoryDumps', function() {
252 const processMemoryDumps = convertToProcessMemoryDumps( 254 const processMemoryDumps = convertToProcessMemoryDumps(
253 tr.ui.analysis.createMultipleTestGlobalMemoryDumps()); 255 tr.ui.analysis.createMultipleTestGlobalMemoryDumps());
254 createAndCheckMemoryDumpOverviewPane(this, 256 createAndCheckMemoryDumpOverviewPane(this,
255 processMemoryDumps, 257 processMemoryDumps,
256 [ // Table rows. 258 [ // Table rows.
257 { 259 {
258 title: colorLegendMatcher('Process 1'), 260 title: colorLegendMatcher('Process 1'),
259 sizes: [[31457280, 29884416, undefined], undefined, 261 sizes: [[31457280, 29884416, undefined], undefined,
260 [10485760, 9437184, undefined], [8388608, 5767168, undefined], 262 [10485760, 9437184, undefined], [8388608, 5767168, undefined],
261 undefined, undefined, undefined, undefined, 263 undefined, undefined, undefined, undefined, undefined,
262 [undefined, 7340032, undefined], undefined, undefined, 264 [undefined, 7340032, undefined], undefined, undefined,
263 [undefined, 2097152, undefined]], 265 [undefined, 2097152, undefined]],
264 contexts: extractProcessMemoryDumps(processMemoryDumps, 1) 266 contexts: extractProcessMemoryDumps(processMemoryDumps, 1)
265 }, 267 },
266 { 268 {
267 title: colorLegendMatcher('Process 2'), 269 title: colorLegendMatcher('Process 2'),
268 sizes: [[19398656, 17825792, 15728640], 270 sizes: [[19398656, 17825792, 15728640],
269 [40370176, 39845888, 40894464], [18350080, 18350080, 18350080], 271 [40370176, 39845888, 40894464], [18350080, 18350080, 18350080],
270 [0, 0, -2621440], [32, 32, 64], [10485760, 8912896, 7340032], 272 [0, 0, -2621440], [32, 32, 64], [10485760, 8912896, 7340032],
271 [undefined, 7340032, 6291456], [undefined, 0, 1048576], 273 [15728640, 15728640, 15728640], [undefined, 7340032, 6291456],
272 [2097152, 1048576, 786432], [undefined, 1, undefined], 274 [undefined, 0, 1048576], [2097152, 1048576, 786432],
273 [5242880, 5242880, 5767168], [1048576, 1572864, 2097152]], 275 [undefined, 1, undefined], [5242880, 5242880, 5767168],
276 [1048576, 1572864, 2097152]],
274 contexts: extractProcessMemoryDumps(processMemoryDumps, 2) 277 contexts: extractProcessMemoryDumps(processMemoryDumps, 2)
275 }, 278 },
276 { 279 {
277 title: colorLegendMatcher('Process 3'), 280 title: colorLegendMatcher('Process 3'),
278 sizes: [undefined, undefined, undefined, undefined, undefined, 281 sizes: [undefined, undefined, undefined, undefined, undefined,
279 undefined, undefined, undefined, undefined, 282 undefined, undefined, undefined, undefined, undefined,
280 [2147483648, undefined, 1073741824], 283 [2147483648, undefined, 1073741824],
281 [1073741824, undefined, 2147483648], undefined], 284 [1073741824, undefined, 2147483648], undefined],
282 contexts: extractProcessMemoryDumps(processMemoryDumps, 3) 285 contexts: extractProcessMemoryDumps(processMemoryDumps, 3)
283 }, 286 },
284 { 287 {
285 title: colorLegendMatcher('Process 4'), 288 title: colorLegendMatcher('Process 4'),
286 sizes: [undefined, [undefined, 17825792, 17825792], undefined, 289 sizes: [undefined, [undefined, 17825792, 17825792], undefined,
287 undefined, undefined, undefined, undefined, undefined, 290 undefined, undefined, undefined, undefined, undefined,
288 undefined, undefined, undefined, undefined], 291 undefined, undefined, undefined, undefined, undefined],
289 contexts: extractProcessMemoryDumps(processMemoryDumps, 4) 292 contexts: extractProcessMemoryDumps(processMemoryDumps, 4)
290 } 293 }
291 ], 294 ],
292 [ // Footer rows. 295 [ // Footer rows.
293 { 296 {
294 title: 'Total', 297 title: 'Total',
295 sizes: [[50855936, 47710208, 15728640], 298 sizes: [[50855936, 47710208, 15728640],
296 [40370176, 57671680, 58720256], [28835840, 27787264, 18350080], 299 [40370176, 57671680, 58720256], [28835840, 27787264, 18350080],
297 [8388608, 5767168, -2621440], [32, 32, 64], 300 [8388608, 5767168, -2621440], [32, 32, 64],
298 [10485760, 8912896, 7340032], [undefined, 7340032, 6291456], 301 [10485760, 8912896, 7340032], [15728640, 15728640, 15728640],
299 [undefined, 0, 1048576], [2097152, 8388608, 786432], 302 [undefined, 7340032, 6291456], [undefined, 0, 1048576],
300 [2147483648, 1, 1073741824], [1078984704, 5242880, 2153250816], 303 [2097152, 8388608, 786432], [2147483648, 1, 1073741824],
304 [1078984704, 5242880, 2153250816],
301 [1048576, 3670016, 2097152]], 305 [1048576, 3670016, 2097152]],
302 contexts: undefined 306 contexts: undefined
303 } 307 }
304 ], 308 ],
305 AggregationMode.DIFF); 309 AggregationMode.DIFF);
306 }); 310 });
307 311
308 test('instantiate_singleProcessMemoryDump', function() { 312 test('instantiate_singleProcessMemoryDump', function() {
309 const processMemoryDumps = convertToProcessMemoryDumps( 313 const processMemoryDumps = convertToProcessMemoryDumps(
310 [tr.ui.analysis.createSingleTestProcessMemoryDump()]); 314 [tr.ui.analysis.createSingleTestProcessMemoryDump()]);
311 createAndCheckMemoryDumpOverviewPane(this, 315 createAndCheckMemoryDumpOverviewPane(this,
312 processMemoryDumps, 316 processMemoryDumps,
313 [ // Table rows. 317 [ // Table rows.
314 { 318 {
315 title: colorLegendMatcher('Process 2'), 319 title: colorLegendMatcher('Process 2'),
316 sizes: [[17825792], [39845888], [18350080], [0], [32], [8912896], 320 sizes: [[17825792], [39845888], [18350080], [0], [32], [8912896],
317 [7340032], [0], [1048576], [1], [5242880], [1572864]], 321 [15728640], [7340032], [0], [1048576], [1], [5242880],
322 [1572864]],
318 contexts: extractProcessMemoryDumps(processMemoryDumps, 2) 323 contexts: extractProcessMemoryDumps(processMemoryDumps, 2)
319 } 324 }
320 ], 325 ],
321 [] /* footer rows */, 326 [] /* footer rows */,
322 undefined /* no aggregation */); 327 undefined /* no aggregation */);
323 }); 328 });
324 329
325 test('instantiate_multipleProcessMemoryDumps', function() { 330 test('instantiate_multipleProcessMemoryDumps', function() {
326 const processMemoryDumps = convertToProcessMemoryDumps( 331 const processMemoryDumps = convertToProcessMemoryDumps(
327 tr.ui.analysis.createMultipleTestProcessMemoryDumps()); 332 tr.ui.analysis.createMultipleTestProcessMemoryDumps());
328 createAndCheckMemoryDumpOverviewPane(this, 333 createAndCheckMemoryDumpOverviewPane(this,
329 processMemoryDumps, 334 processMemoryDumps,
330 [ // Table rows. 335 [ // Table rows.
331 { 336 {
332 title: colorLegendMatcher('Process 2'), 337 title: colorLegendMatcher('Process 2'),
333 sizes: [[19398656, 17825792, 15728640], 338 sizes: [[19398656, 17825792, 15728640],
334 [40370176, 39845888, 40894464], [18350080, 18350080, 18350080], 339 [40370176, 39845888, 40894464], [18350080, 18350080, 18350080],
335 [0, 0, -2621440], [32, 32, 64], [10485760, 8912896, 7340032], 340 [0, 0, -2621440], [32, 32, 64], [10485760, 8912896, 7340032],
336 [undefined, 7340032, 6291456], [undefined, 0, 1048576], 341 [15728640, 15728640, 15728640], [undefined, 7340032, 6291456],
337 [2097152, 1048576, 786432], [undefined, 1, undefined], 342 [undefined, 0, 1048576], [2097152, 1048576, 786432],
338 [5242880, 5242880, 5767168], [1048576, 1572864, 2097152]], 343 [undefined, 1, undefined], [5242880, 5242880, 5767168],
344 [1048576, 1572864, 2097152]],
339 contexts: extractProcessMemoryDumps(processMemoryDumps, 2) 345 contexts: extractProcessMemoryDumps(processMemoryDumps, 2)
340 } 346 }
341 ], 347 ],
342 [] /* footer rows */, 348 [] /* footer rows */,
343 AggregationMode.MAX); 349 AggregationMode.MAX);
344 }); 350 });
345 351
346 test('selection', function() { 352 test('selection', function() {
347 const processMemoryDumps = convertToProcessMemoryDumps( 353 const processMemoryDumps = convertToProcessMemoryDumps(
348 tr.ui.analysis.createMultipleTestGlobalMemoryDumps()); 354 tr.ui.analysis.createMultipleTestGlobalMemoryDumps());
349 355
350 const viewEl = 356 const viewEl =
351 tr.ui.analysis.createTestPane('tr-ui-a-memory-dump-overview-pane'); 357 tr.ui.analysis.createTestPane('tr-ui-a-memory-dump-overview-pane');
352 viewEl.processMemoryDumps = processMemoryDumps; 358 viewEl.processMemoryDumps = processMemoryDumps;
353 viewEl.aggregationMode = AggregationMode.DIFF; 359 viewEl.aggregationMode = AggregationMode.DIFF;
354 viewEl.rebuild(); 360 viewEl.rebuild();
355 this.addHTMLOutput(viewEl); 361 this.addHTMLOutput(viewEl);
356 362
357 const table = viewEl.$.table; 363 const table = viewEl.$.table;
358 364
359 // Simulate clicking on the 'malloc' cell of the second process. 365 // Simulate clicking on the 'malloc' cell of the second process.
360 table.selectedTableRow = table.tableRows[1]; 366 table.selectedTableRow = table.tableRows[1];
361 table.selectedColumnIndex = 9; 367 table.selectedColumnIndex = 10;
362 assert.lengthOf(viewEl.requestedChildPanes, 2); 368 assert.lengthOf(viewEl.requestedChildPanes, 2);
363 let lastChildPane = viewEl.requestedChildPanes[1]; 369 let lastChildPane = viewEl.requestedChildPanes[1];
364 assert.strictEqual( 370 assert.strictEqual(
365 lastChildPane.tagName, 'TR-UI-A-MEMORY-DUMP-ALLOCATOR-DETAILS-PANE'); 371 lastChildPane.tagName, 'TR-UI-A-MEMORY-DUMP-ALLOCATOR-DETAILS-PANE');
366 assert.strictEqual(lastChildPane.aggregationMode, AggregationMode.DIFF); 372 assert.strictEqual(lastChildPane.aggregationMode, AggregationMode.DIFF);
367 assert.deepEqual(lastChildPane.memoryAllocatorDumps, 373 assert.deepEqual(lastChildPane.memoryAllocatorDumps,
368 extractMemoryAllocatorDumps(processMemoryDumps, 2, 'malloc')); 374 extractMemoryAllocatorDumps(processMemoryDumps, 2, 'malloc'));
369 375
370 // Simulate clicking on the 'Oilpan' cell of the second process. 376 // Simulate clicking on the 'Oilpan' cell of the second process.
371 table.selectedColumnIndex = 10; 377 table.selectedColumnIndex = 10;
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
462 function(view, table) { 468 function(view, table) {
463 const childPane = view.createChildPane(); 469 const childPane = view.createChildPane();
464 assert.strictEqual( 470 assert.strictEqual(
465 childPane.tagName, 'TR-UI-A-MEMORY-DUMP-VM-REGIONS-DETAILS-PANE'); 471 childPane.tagName, 'TR-UI-A-MEMORY-DUMP-VM-REGIONS-DETAILS-PANE');
466 assert.deepEqual(Array.from(childPane.vmRegions), 472 assert.deepEqual(Array.from(childPane.vmRegions),
467 extractVmRegions(processMemoryDumps, 2)); 473 extractVmRegions(processMemoryDumps, 2));
468 assert.strictEqual(childPane.aggregationMode, AggregationMode.DIFF); 474 assert.strictEqual(childPane.aggregationMode, AggregationMode.DIFF);
469 475
470 // Select the 'v8' column of the first process (empty cell). 476 // Select the 'v8' column of the first process (empty cell).
471 table.selectedTableRow = table.tableRows[0]; 477 table.selectedTableRow = table.tableRows[0];
472 table.selectedColumnIndex = 10; 478 table.selectedColumnIndex = 11;
473 }); 479 });
474 480
475 simulateView( 481 simulateView(
476 [1], 482 [1],
477 undefined, /* No aggregation */ 483 undefined, /* No aggregation */
478 undefined, undefined, undefined, // No cell should selected. 484 undefined, undefined, undefined, // No cell should selected.
479 function(view, table) { 485 function(view, table) {
480 assert.isUndefined(view.createChildPane()); 486 assert.isUndefined(view.createChildPane());
481 487
482 // Select 'Total resident' column of the first process. 488 // Select 'Total resident' column of the first process.
(...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after
825 test('tracingColumn', function() { 831 test('tracingColumn', function() {
826 const c = new TracingColumn('Tracing', 'bytes', (x => x), 832 const c = new TracingColumn('Tracing', 'bytes', (x => x),
827 AggregationMode.DIFF); 833 AggregationMode.DIFF);
828 checkSpanWithColor(c.title, 'Tracing', 834 checkSpanWithColor(c.title, 'Tracing',
829 TracingColumn.COLOR /* expected column title gray color */); 835 TracingColumn.COLOR /* expected column title gray color */);
830 checkColor(c.color(undefined /* contexts */), 836 checkColor(c.color(undefined /* contexts */),
831 TracingColumn.COLOR /* expected column cells gray color */); 837 TracingColumn.COLOR /* expected column cells gray color */);
832 }); 838 });
833 }); 839 });
834 </script> 840 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698