| <!DOCTYPE html> |
| <!-- |
| Copyright (c) 2015 The Chromium Authors. All rights reserved. |
| Use of this source code is governed by a BSD-style license that can be |
| found in the LICENSE file. |
| --> |
| |
| <link rel='import' href='/tracing/base/iteration_helpers.html'> |
| <link rel='import' href='/tracing/base/multi_dimensional_view.html'> |
| <link rel='import' href='/tracing/core/test_utils.html'> |
| <link rel='import' href='/tracing/model/heap_dump.html'> |
| <link rel='import' |
| href='/tracing/ui/analysis/memory_dump_heap_details_pane.html'> |
| <link rel='import' |
| href='/tracing/ui/analysis/memory_dump_sub_view_test_utils.html'> |
| <link rel='import' href='/tracing/ui/analysis/memory_dump_sub_view_util.html'> |
| |
| <script> |
| 'use strict'; |
| |
| tr.b.unittest.testSuite(function() { |
| var MultiDimensionalViewType = tr.b.MultiDimensionalViewType; |
| var TOP_DOWN_TREE_VIEW = tr.b.MultiDimensionalViewType.TOP_DOWN_TREE_VIEW; |
| var TOP_DOWN_HEAVY_VIEW = tr.b.MultiDimensionalViewType.TOP_DOWN_HEAVY_VIEW; |
| var BOTTOM_UP_HEAVY_VIEW = tr.b.MultiDimensionalViewType.BOTTOM_UP_HEAVY_VIEW; |
| var HeapDump = tr.model.HeapDump; |
| var RowDimension = tr.ui.analysis.RowDimension; |
| var ROOT = RowDimension.ROOT; |
| var STACK_FRAME = RowDimension.STACK_FRAME; |
| var OBJECT_TYPE = RowDimension.OBJECT_TYPE; |
| var TitleColumn = tr.ui.analysis.TitleColumn; |
| var NumericMemoryColumn = tr.ui.analysis.NumericMemoryColumn; |
| var AggregationMode = tr.ui.analysis.MemoryColumn.AggregationMode; |
| var addGlobalMemoryDump = tr.ui.analysis.addGlobalMemoryDump; |
| var addProcessMemoryDump = tr.ui.analysis.addProcessMemoryDump; |
| var checkColumns = tr.ui.analysis.checkColumns; |
| var checkSizeNumericFields = tr.ui.analysis.checkSizeNumericFields; |
| var isElementDisplayed = tr.ui.analysis.isElementDisplayed; |
| |
| function createHeapDumps() { |
| var model = new tr.Model(); |
| var process = model.getOrCreateProcess(1); |
| |
| function heapTrace(/* topStackFrame, ..., leafStackFrame */) { |
| return tr.c.TestUtils.newStackTrace( |
| model, Array.prototype.slice.call(arguments)); |
| } |
| |
| // First timestamp. |
| var gmd1 = addGlobalMemoryDump(model, -10); |
| var pmd1 = addProcessMemoryDump(gmd1, process, -11); |
| var hd1 = new HeapDump(pmd1, 'partition_alloc'); |
| |
| hd1.addEntry(undefined /* sum over all traces */, |
| undefined /* sum over all types */, 4194304 /* 4 MiB */); |
| hd1.addEntry(undefined /* sum over all traces */, 'v8::Context', |
| 1048576 /* 1 MiB */); |
| hd1.addEntry(undefined /* sum over all traces */, 'blink::Node', |
| 331776 /* 324 KiB */); |
| hd1.addEntry(heapTrace('MessageLoop::RunTask'), |
| undefined /* sum over all types */, 4194304 /* 4 MiB */); |
| hd1.addEntry(heapTrace('MessageLoop::RunTask'), 'v8::Context', |
| 1048576 /* 1 MiB */); |
| |
| hd1.addEntry(heapTrace('MessageLoop::RunTask', 'FunctionCall'), |
| undefined /* sum over all types */, 1406976 /* 1.3 MiB */); |
| hd1.addEntry(heapTrace('MessageLoop::RunTask', 'FunctionCall'), |
| 'blink::Node', 331776 /* 324 KiB */); |
| hd1.addEntry(heapTrace('MessageLoop::RunTask', 'FunctionCall'), |
| 'v8::Context', 1024000 /* 1000 KiB */); |
| hd1.addEntry(heapTrace('MessageLoop::RunTask', 'FunctionCall', '<self>'), |
| undefined /* sum over all types */, 102400 /* 100 KiB */); |
| hd1.addEntry( |
| heapTrace('MessageLoop::RunTask', 'FunctionCall', 'V8.Execute'), |
| 'v8::Context', 716800 /* 700 KiB */); |
| hd1.addEntry( |
| heapTrace('MessageLoop::RunTask', 'FunctionCall', 'V8.Execute'), |
| undefined /* sum over all types */, 1048576 /* 1 MiB */); |
| hd1.addEntry( |
| heapTrace('MessageLoop::RunTask', 'FunctionCall', 'FunctionCall'), |
| undefined /* sum over all types */, |
| 153600 /* 150 KiB, lower than the actual sum (should be ignored) */); |
| hd1.addEntry( |
| heapTrace('MessageLoop::RunTask', 'FunctionCall', 'FunctionCall'), |
| 'v8::Context', 153600 /* 150 KiB */); |
| |
| // The following entry should not appear in the tree-view because there is |
| // no entry for its parent stack frame. |
| hd1.addEntry( |
| heapTrace('MessageLoop::RunTask', 'MissingParent', 'FunctionCall'), |
| undefined /* sum over all types */, 10 /* 10 B */); |
| |
| // The following entry should not appear in the tree-view because there is |
| // no sum over all types (for the given stack trace). However, it will lead |
| // to a visible increase of the (incorrectly provided) sum over all types |
| // of MessageLoop::RunTask -> FunctionCall -> FunctionCall by 50 KiB. |
| hd1.addEntry( |
| heapTrace('MessageLoop::RunTask', 'FunctionCall', 'FunctionCall', |
| 'FunctionCall'), |
| 'MissingSumOverAllTypes', 51200 /* 50 KiB */); |
| |
| hd1.addEntry( |
| heapTrace('MessageLoop::RunTask', 'V8.Execute'), |
| undefined /* sum over all types */, 2404352 /* 2.3 MiB */); |
| hd1.addEntry( |
| heapTrace('MessageLoop::RunTask', 'V8.Execute', 'FunctionCall'), |
| undefined /* sum over all types */, 2404352 /* 2.3 MiB */); |
| hd1.addEntry( |
| heapTrace('MessageLoop::RunTask', 'V8.Execute', 'FunctionCall'), |
| 'v8::Context', 20480 /* 20 KiB */); |
| hd1.addEntry( |
| heapTrace('MessageLoop::RunTask', 'V8.Execute', 'FunctionCall', |
| '<self>'), |
| 'v8::Context', 15360 /* 15 KiB */); |
| hd1.addEntry( |
| heapTrace('MessageLoop::RunTask', 'V8.Execute', 'FunctionCall', |
| 'V8.Execute'), |
| undefined /* sum over all types */, 2097152 /* 2 MiB */); |
| hd1.addEntry( |
| heapTrace('MessageLoop::RunTask', 'V8.Execute', 'FunctionCall', |
| 'V8.Execute', 'V8.Execute'), |
| undefined /* sum over all types */, 2097152 /* 2 MiB */); |
| hd1.addEntry( |
| heapTrace('MessageLoop::RunTask', 'V8.Execute', 'FunctionCall', |
| '<self>'), |
| undefined /* sum over all types */, 307200 /* 300 KiB */); |
| |
| // Second timestamp. |
| var gmd2 = addGlobalMemoryDump(model, 10); |
| var pmd2 = addProcessMemoryDump(gmd2, process, 11); |
| var hd2 = new HeapDump(pmd2, 'partition_alloc'); |
| |
| hd2.addEntry(undefined /* sum over all traces */, |
| undefined /* sum over all types */, |
| 3145728 /* 3 MiB, lower than the actual sum (should be ignored) */); |
| hd2.addEntry(undefined /* sum over all traces */, |
| 'v8::Context', 1258291 /* 1.2 MiB */); |
| hd2.addEntry(undefined /* sum over all traces */, |
| 'blink::Node', 1048576 /* 1 MiB */); |
| hd2.addEntry(heapTrace('<self>'), undefined /* sum over all types */, |
| 131072 /* 128 KiB */); |
| hd2.addEntry(heapTrace('<self>'), 'v8::Context', 131072 /* 128 KiB */); |
| hd2.addEntry(heapTrace('MessageLoop::RunTask'), |
| undefined /* sum over all types */, 4823449 /* 4.6 MiB */); |
| hd2.addEntry(heapTrace('MessageLoop::RunTask'), 'v8::Context', |
| 1127219 /* 1.1 MiB */); |
| |
| hd2.addEntry(heapTrace('MessageLoop::RunTask', 'FunctionCall'), |
| undefined /* sum over all types */, 2170880 /* 2.1 MiB */); |
| hd2.addEntry(heapTrace('MessageLoop::RunTask', 'FunctionCall'), |
| 'v8::Context', 1024000 /* 1000 KiB */); |
| hd2.addEntry(heapTrace('MessageLoop::RunTask', 'FunctionCall'), |
| 'blink::Node', 819200 /* 800 KiB */); |
| hd2.addEntry( |
| heapTrace('MessageLoop::RunTask', 'FunctionCall', 'V8.Execute'), |
| undefined /* sum over all types */, 1572864 /* 1.5 MiB */); |
| hd2.addEntry( |
| heapTrace('MessageLoop::RunTask', 'FunctionCall', 'V8.Execute'), |
| 'v8::Context', 614400 /* 600 KiB */); |
| hd2.addEntry( |
| heapTrace('MessageLoop::RunTask', 'FunctionCall', 'V8.Execute'), |
| 'blink::Node', 819200 /* 800 KiB */); |
| hd2.addEntry( |
| heapTrace('MessageLoop::RunTask', 'FunctionCall', 'FunctionCall'), |
| undefined /* sum over all types */, 204800 /* 200 KiB */); |
| hd2.addEntry( |
| heapTrace('MessageLoop::RunTask', 'FunctionCall', 'FunctionCall'), |
| 'v8::Context', 122880 /* 120 KiB */); |
| hd2.addEntry( |
| heapTrace('MessageLoop::RunTask', 'FunctionCall', 'FunctionCall', |
| 'FunctionCall'), |
| undefined /* sum over all types */, 204800 /* 200 KiB */); |
| hd2.addEntry(heapTrace('MessageLoop::RunTask', 'FunctionCall', '<self>'), |
| undefined /* sum over all types */, 393216 /* 384 KiB */); |
| |
| hd2.addEntry( |
| heapTrace('MessageLoop::RunTask', 'V8.Execute'), |
| undefined /* sum over all types */, 2621440 /* 2.5 MiB */); |
| hd2.addEntry( |
| heapTrace('MessageLoop::RunTask', 'V8.Execute', 'FunctionCall'), |
| undefined /* sum over all types */, 2621440 /* 2.5 MiB */); |
| hd2.addEntry( |
| heapTrace('MessageLoop::RunTask', 'V8.Execute', 'FunctionCall'), |
| 'v8::Context', 20480 /* 20 KiB */); |
| hd2.addEntry( |
| heapTrace('MessageLoop::RunTask', 'V8.Execute', 'FunctionCall'), |
| 'WTF::StringImpl', 126362 /* 123.4 KiB */); |
| hd2.addEntry( |
| heapTrace('MessageLoop::RunTask', 'V8.Execute', 'FunctionCall', |
| 'V8.Execute'), |
| undefined /* sum over all types */, 2516582 /* 2.4 MiB */); |
| |
| return [hd1, hd2]; |
| } |
| |
| function checkDisplayedElements(viewEl, displayExpectations) { |
| assert.strictEqual(isElementDisplayed(viewEl.$.info_text), |
| displayExpectations.infoText); |
| assert.strictEqual(isElementDisplayed(viewEl.$.info_bar), |
| displayExpectations.infoBar); |
| assert.strictEqual(isElementDisplayed(viewEl.$.table), |
| displayExpectations.tableAndSelector); |
| assert.strictEqual(isElementDisplayed(viewEl.$.view_mode_container), |
| displayExpectations.tableAndSelector); |
| } |
| |
| var EXPECTED_COLUMNS = [ |
| { title: 'Stack frame', type: TitleColumn, noAggregation: true }, |
| { title: 'Size', type: NumericMemoryColumn } |
| ]; |
| |
| function checkRow(columns, row, expectedDimension, expectedTitle, |
| expectedSizes, expectedDefinedValues) { |
| var formattedTitle = columns[0].formatTitle(row); |
| switch (expectedDimension) { |
| case ROOT: |
| assert.equal(formattedTitle, expectedTitle); |
| break; |
| |
| case STACK_FRAME: |
| case OBJECT_TYPE: |
| assert.lengthOf(formattedTitle.childNodes, 2); |
| assert.strictEqual(formattedTitle.childNodes[0].textContent, |
| expectedDimension === STACK_FRAME ? '\u0192' : '\u24C9'); |
| assert.strictEqual( |
| formattedTitle.childNodes[1].textContent, expectedTitle); |
| break; |
| |
| default: |
| throw new Error('Invalid expected dimension: ' + expectedDimension); |
| } |
| |
| checkSizeNumericFields(row, columns[1], expectedSizes); |
| |
| var actualDefinedValues = new Array(row.contexts.length); |
| for (var i = 0; i < row.contexts.length; i++) |
| actualDefinedValues[i] = row.contexts[i] !== undefined; |
| assert.deepEqual(actualDefinedValues, expectedDefinedValues); |
| } |
| |
| function checkRows(columns, rows, expectedStructure) { |
| if (expectedStructure === undefined) { |
| assert.isUndefined(rows); |
| return; |
| } |
| |
| if (typeof expectedStructure === 'number') { |
| assert.lengthOf(rows, expectedStructure); |
| return; |
| } |
| |
| assert.lengthOf(rows, expectedStructure.length); |
| for (var i = 0; i < expectedStructure.length; i++) { |
| var row = rows[i]; |
| var expectedRowStructure = expectedStructure[i]; |
| checkRow(columns, row, expectedRowStructure.dimension, |
| expectedRowStructure.title, expectedRowStructure.size, |
| expectedRowStructure.defined); |
| checkRows(columns, row.subRows, expectedRowStructure.children); |
| } |
| } |
| |
| function checkTable(viewEl, expectedAggregationMode, expectedInfoBarDisplayed, |
| expectedStructure) { |
| checkDisplayedElements(viewEl, { |
| infoText: false, |
| tableAndSelector: true, |
| infoBar: expectedInfoBarDisplayed |
| }); |
| var table = viewEl.$.table; |
| var columns = table.tableColumns; |
| var rows = table.tableRows; |
| checkColumns(columns, EXPECTED_COLUMNS, expectedAggregationMode); |
| checkRows(columns, rows, expectedStructure); |
| } |
| |
| function changeView(viewEl, viewType) { |
| tr.b.findDeepElementMatching(viewEl, 'select').selectedValue = viewType; |
| viewEl.rebuild(); |
| } |
| |
| /** |
| * Helper function for generating the expected structures of heap details |
| * pane tables. Given a table, this function generates its structure. |
| * |
| * This avoids the need to write such structures manually, which is very |
| * tedious. However, the correctness of the generated structures needs to be |
| * verified by the developer! Maximum line length must also be enforced |
| * manually. |
| */ |
| function printTable(test, viewEl) { |
| var generator = new tr.c.TestUtils.SourceGenerator(); |
| |
| function formatRows(rows) { |
| generator.formatMultiLineList(rows, function(row) { |
| generator.push('{'); |
| generator.indentBlock(2, true /* break line */, function() { |
| generator.push('dimension: '); |
| for (var dimensionTitle in RowDimension) { |
| if (row.dimension === RowDimension[dimensionTitle]) { |
| generator.push(dimensionTitle); |
| break; |
| } |
| } |
| generator.push(','); |
| generator.breakLine(); |
| |
| generator.push('title: \'', row.title, '\','); |
| generator.breakLine(); |
| |
| var fields = row.cells['Size'].fields; |
| generator.push('size: '); |
| generator.formatSingleLineList(fields, function(field) { |
| generator.push( |
| field === undefined ? 'undefined' : String(field.value)); |
| }); |
| generator.push(','); |
| generator.breakLine(); |
| |
| generator.push('defined: '); |
| generator.formatSingleLineList(fields, function(field) { |
| generator.push(field === undefined ? 'undefined' : 'true'); |
| }); |
| |
| if (row.subRows && row.subRows.length > 0) { |
| generator.push(','); |
| generator.breakLine(); |
| generator.push('children: '); |
| formatRows(row.subRows); |
| } |
| }); |
| generator.breakLine(); |
| generator.push('}'); |
| }); |
| } |
| |
| generator.indentBlock(8, false /* don't break line */, |
| formatRows.bind(null, viewEl.$.table.tableRows)); |
| |
| tr.c.TestUtils.addSourceListing(test, generator.build()); |
| |
| throw new Error('This error is thrown to prevent accidentally ' + |
| 'checking in a test which calls this function.'); |
| } |
| |
| test('instantiate_empty', function() { |
| tr.ui.analysis.createAndCheckEmptyPanes(this, |
| 'tr-ui-a-memory-dump-heap-details-pane', 'heapDumps', |
| function(viewEl) { |
| // Check that the info text is shown. |
| checkDisplayedElements(viewEl, { |
| infoText: true, |
| tableAndSelector: false, |
| infoBar: false |
| }); |
| }); |
| }); |
| |
| test('instantiate_noEntries', function() { |
| var heapDumps = createHeapDumps().slice(0, 1); |
| heapDumps[0].entries = []; |
| |
| var viewEl = tr.ui.analysis.createTestPane( |
| 'tr-ui-a-memory-dump-heap-details-pane'); |
| viewEl.heapDumps = heapDumps; |
| viewEl.rebuild(); |
| this.addHTMLOutput(viewEl); |
| |
| // Top-down tree view (default). |
| checkTable(viewEl, undefined /* no aggregation */, |
| false /* hide info bar */, [ |
| { |
| dimension: ROOT, |
| title: 'partition_alloc', |
| size: [0], |
| defined: [true] |
| } |
| ]); |
| |
| changeView(viewEl, TOP_DOWN_HEAVY_VIEW); |
| checkTable(viewEl, undefined /* no aggregation */, true /* show info bar */, |
| [ |
| { |
| dimension: ROOT, |
| title: 'partition_alloc', |
| size: [0], |
| defined: [true] |
| } |
| ]); |
| |
| changeView(viewEl, BOTTOM_UP_HEAVY_VIEW); |
| checkTable(viewEl, undefined /* no aggregation */, true /* show info bar */, |
| [ |
| { |
| dimension: ROOT, |
| title: 'partition_alloc', |
| size: [0], |
| defined: [true] |
| } |
| ]); |
| |
| changeView(viewEl, TOP_DOWN_TREE_VIEW); |
| }); |
| |
| test('instantiate_single', function() { |
| var heapDumps = createHeapDumps().slice(0, 1); |
| |
| var viewEl = tr.ui.analysis.createTestPane( |
| 'tr-ui-a-memory-dump-heap-details-pane'); |
| viewEl.heapDumps = heapDumps; |
| viewEl.rebuild(); |
| this.addHTMLOutput(viewEl); |
| |
| // Top-down tree view (default). |
| checkTable(viewEl, undefined /* no aggregation */, |
| false /* hide info bar */, [ |
| { |
| dimension: ROOT, |
| title: 'partition_alloc', |
| size: [4194304], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [4194304], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [1406976], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [102400], |
| defined: [true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [1048576], |
| defined: [true], |
| children: [ |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [716800], |
| defined: [true], |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: '<other>', |
| size: [331776], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [153600 + 51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [153600], |
| defined: [true], |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: '<other>', |
| size: [51200], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: '<other>', |
| size: [51200], |
| defined: [true], |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'blink::Node', |
| size: [331776], |
| defined: [true], |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [1024000], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [716800], |
| defined: [true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [153600], |
| defined: [true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: '<other>', |
| size: [153600], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: '<other>', |
| size: [51200], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [2404352], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [2404352], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [307200], |
| defined: [true], |
| children: [ |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [15360], |
| defined: [true], |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: '<other>', |
| size: [291840], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [2097152], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [2097152], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [20480], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [15360], |
| defined: [true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: '<other>', |
| size: [5120], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: '<other>', |
| size: [2383872], |
| defined: [true], |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: '<other>', |
| size: [382976], |
| defined: [true], |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [1048576], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [1024000], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [716800], |
| defined: [true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [153600], |
| defined: [true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: '<other>', |
| size: [153600], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: '<other>', |
| size: [24576], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: '<other>', |
| size: [3145728], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [1048576], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [1048576], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [1024000], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [716800], |
| defined: [true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [153600], |
| defined: [true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: '<other>', |
| size: [153600], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: '<other>', |
| size: [24576], |
| defined: [true], |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'blink::Node', |
| size: [331776], |
| defined: [true], |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: '<other>', |
| size: [2813952], |
| defined: [true], |
| } |
| ] |
| } |
| ]); |
| |
| changeView(viewEl, BOTTOM_UP_HEAVY_VIEW); |
| checkTable(viewEl, undefined /* no aggregation */, true /* show info bar */, |
| [ |
| { |
| dimension: ROOT, |
| title: 'partition_alloc', |
| size: [4194304], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [4194304], |
| defined: [true], |
| children: [ |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [1048576], |
| defined: [true] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'blink::Node', |
| size: [331776], |
| defined: [true] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'MissingSumOverAllTypes', |
| size: [51200], |
| defined: [true] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [3811338], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [1406976], |
| defined: [true], |
| children: [ |
| { |
| dimension: OBJECT_TYPE, |
| title: 'blink::Node', |
| size: [331776], |
| defined: [true] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [1024000], |
| defined: [true] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'MissingSumOverAllTypes', |
| size: [51200], |
| defined: [true] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [204800], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [204800], |
| defined: [true], |
| children: [ |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [153600], |
| defined: [true] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'MissingSumOverAllTypes', |
| size: [51200], |
| defined: [true] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: OBJECT_TYPE, |
| title: 'MissingSumOverAllTypes', |
| size: [51200], |
| defined: [true] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'MissingSumOverAllTypes', |
| size: [51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [51200], |
| defined: [true] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [153600], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [153600], |
| defined: [true] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'MissingSumOverAllTypes', |
| size: [51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [51200], |
| defined: [true] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [51200], |
| defined: [true] |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'MissingParent', |
| size: [10], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [10], |
| defined: [true] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [2404352], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [2404352], |
| defined: [true], |
| children: [ |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [20480], |
| defined: [true] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [20480], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [20480], |
| defined: [true] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'blink::Node', |
| size: [331776], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [331776], |
| defined: [true] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [1044480], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [1024000], |
| defined: [true] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [153600], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [153600], |
| defined: [true] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [20480], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [20480], |
| defined: [true] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'MissingSumOverAllTypes', |
| size: [51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [51200], |
| defined: [true] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [51200], |
| defined: [true] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [51200], |
| defined: [true] |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [409600], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [409600], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [102400], |
| defined: [true] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [307200], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [307200], |
| defined: [true], |
| children: [ |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [15360], |
| defined: [true] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [15360], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [15360], |
| defined: [true] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [15360], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [15360], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [15360], |
| defined: [true] |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [15360], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [15360], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [15360], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [15360], |
| defined: [true] |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [3452928], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [3145728], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [1048576], |
| defined: [true], |
| children: [ |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [716800], |
| defined: [true] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [2097152], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [2097152], |
| defined: [true] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [716800], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [716800], |
| defined: [true] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [2404352], |
| defined: [true], |
| children: [ |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [20480], |
| defined: [true] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [2097152], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [2097152], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [2097152], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [2097152], |
| defined: [true] |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [737280], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [716800], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [716800], |
| defined: [true] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [20480], |
| defined: [true] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'MissingParent', |
| size: [10], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [10], |
| defined: [true] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [1048576], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [1048576], |
| defined: [true] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [1044480], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [1024000], |
| defined: [true] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [153600], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [153600], |
| defined: [true] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [20480], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [20480], |
| defined: [true] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [15360], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [15360], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [15360], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [15360], |
| defined: [true] |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [737280], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [716800], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [716800], |
| defined: [true] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [20480], |
| defined: [true] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'blink::Node', |
| size: [331776], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [331776], |
| defined: [true] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [331776], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [331776], |
| defined: [true] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'MissingSumOverAllTypes', |
| size: [51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [51200], |
| defined: [true] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [51200], |
| defined: [true] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [51200], |
| defined: [true] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [51200], |
| defined: [true] |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| } |
| ]); |
| |
| changeView(viewEl, TOP_DOWN_HEAVY_VIEW); |
| checkTable(viewEl, undefined /* no aggregation */, true /* show info bar */, |
| [ |
| { |
| dimension: ROOT, |
| title: 'partition_alloc', |
| size: [4194304], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [4194304], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [1406976], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [102400], |
| defined: [true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [1048576], |
| defined: [true], |
| children: [ |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [716800], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [153600 + 51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: OBJECT_TYPE, |
| title: 'MissingSumOverAllTypes', |
| size: [51200], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [153600], |
| defined: [true], |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'MissingSumOverAllTypes', |
| size: [51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200], |
| defined: [true], |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'blink::Node', |
| size: [331776], |
| defined: [true], |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [1024000], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [716800], |
| defined: [true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [153600], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'MissingSumOverAllTypes', |
| size: [51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200], |
| defined: [true], |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'MissingParent', |
| size: [10], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [10], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [2404352], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [2404352], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [307200], |
| defined: [true], |
| children: [ |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [15360], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [2097152], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [2097152], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [20480], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [15360], |
| defined: [true], |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [20480], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [20480], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [15360], |
| defined: [true], |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [1048576], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [1024000], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [716800], |
| defined: [true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [153600], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [20480], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [20480], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [15360], |
| defined: [true], |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'blink::Node', |
| size: [331776], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [331776], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'MissingSumOverAllTypes', |
| size: [51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200], |
| defined: [true], |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [1406976 + 10 + 2404352], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [102400 + 307200], |
| defined: [true], |
| children: [ |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [15360], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [1048576 + 2097152], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [2097152], |
| defined: [true], |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [716800], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [153600 + 51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: OBJECT_TYPE, |
| title: 'MissingSumOverAllTypes', |
| size: [51200], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [153600], |
| defined: [true], |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'MissingSumOverAllTypes', |
| size: [51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200], |
| defined: [true], |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'blink::Node', |
| size: [331776], |
| defined: [true], |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [1024000 + 20480], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [15360], |
| defined: [true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [716800], |
| defined: [true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [153600], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'MissingSumOverAllTypes', |
| size: [51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200], |
| defined: [true], |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [102400 + 307200], |
| defined: [true], |
| children: [ |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [15360], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [1048576 + 2404352], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [2404352], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [307200], |
| defined: [true], |
| children: [ |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [15360], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [2097152], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [2097152], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [20480], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [15360], |
| defined: [true], |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [2097152], |
| defined: [true], |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [716800 + 20480], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [20480], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [15360], |
| defined: [true], |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'MissingParent', |
| size: [10], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [10], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [1048576], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [1048576], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [1024000], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [716800], |
| defined: [true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [153600], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [20480], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [20480], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [15360], |
| defined: [true], |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [1024000 + 20480], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [15360], |
| defined: [true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [716800], |
| defined: [true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [153600], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [15360], |
| defined: [true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [716800 + 20480], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [20480], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [15360], |
| defined: [true], |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'blink::Node', |
| size: [331776], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [331776], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [331776], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [331776], |
| defined: [true], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'MissingSumOverAllTypes', |
| size: [51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200], |
| defined: [true], |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200], |
| defined: [true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200], |
| defined: [true], |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| } |
| ]); |
| }); |
| |
| test('instantiate_multipleDiff', function() { |
| var heapDumps = createHeapDumps(); |
| |
| var viewEl = tr.ui.analysis.createTestPane( |
| 'tr-ui-a-memory-dump-heap-details-pane'); |
| viewEl.heapDumps = heapDumps; |
| viewEl.aggregationMode = AggregationMode.DIFF; |
| viewEl.rebuild(); |
| this.addHTMLOutput(viewEl); |
| |
| changeView(viewEl, TOP_DOWN_HEAVY_VIEW); |
| checkTable(viewEl, AggregationMode.DIFF, true /* show info bar */, [ |
| { |
| dimension: ROOT, |
| title: 'partition_alloc', |
| size: [4194304, 4954521], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [4194304, 4823449], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [1406976, 2170880], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [102400, 393216], |
| defined: [true, true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [1048576, 1572864], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [716800, 614400], |
| defined: [true, true], |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'blink::Node', |
| size: [undefined, 819200], |
| defined: [false, true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [204800, 204800], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200, 204800], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: OBJECT_TYPE, |
| title: 'MissingSumOverAllTypes', |
| size: [51200, undefined], |
| defined: [true, false], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [153600, 122880], |
| defined: [true, true], |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'MissingSumOverAllTypes', |
| size: [51200, undefined], |
| defined: [true, false], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200, undefined], |
| defined: [true, false], |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'blink::Node', |
| size: [331776, 819200], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [undefined, 819200], |
| defined: [false, true], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [1024000, 1024000], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [716800, 614400], |
| defined: [true, true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [153600, 122880], |
| defined: [true, true], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'MissingSumOverAllTypes', |
| size: [51200, undefined], |
| defined: [true, false], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200, undefined], |
| defined: [true, false], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200, undefined], |
| defined: [true, false], |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'MissingParent', |
| size: [10, undefined], |
| defined: [true, false], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [10, undefined], |
| defined: [true, false], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [2404352, 2621440], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [2404352, 2621440], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [307200, undefined], |
| defined: [true, false], |
| children: [ |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [15360, undefined], |
| defined: [true, false], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [2097152, 2516582], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [2097152, undefined], |
| defined: [true, false], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [20480, 20480], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [15360, undefined], |
| defined: [true, false], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'WTF::StringImpl', |
| size: [undefined, 126362], |
| defined: [false, true], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [20480, 20480], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [20480, 20480], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [15360, undefined], |
| defined: [true, false], |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'WTF::StringImpl', |
| size: [undefined, 126362], |
| defined: [false, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [undefined, 126362], |
| defined: [false, true], |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [1048576, 1127219], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [1024000, 1024000], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [716800, 614400], |
| defined: [true, true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [153600, 122880], |
| defined: [true, true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [20480, 20480], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [20480, 20480], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [15360, undefined], |
| defined: [true, false], |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'blink::Node', |
| size: [331776, 819200], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [331776, 819200], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [undefined, 819200], |
| defined: [false, true], |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'MissingSumOverAllTypes', |
| size: [51200, undefined], |
| defined: [true, false], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200, undefined], |
| defined: [true, false], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200, undefined], |
| defined: [true, false], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200, undefined], |
| defined: [true, false], |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'WTF::StringImpl', |
| size: [undefined, 126362], |
| defined: [false, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [undefined, 126362], |
| defined: [false, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [undefined, 126362], |
| defined: [false, true], |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [3811338, 4792320], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [409600, 393216], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [15360, undefined], |
| defined: [true, false], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [3145728, 4089446], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [2097152, undefined], |
| defined: [true, false], |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [716800, 614400], |
| defined: [true, true], |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'blink::Node', |
| size: [undefined, 819200], |
| defined: [false, true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [204800, 204800], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200, 204800], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: OBJECT_TYPE, |
| title: 'MissingSumOverAllTypes', |
| size: [51200, undefined], |
| defined: [true, false], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [153600, 122880], |
| defined: [true, true], |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'MissingSumOverAllTypes', |
| size: [51200, undefined], |
| defined: [true, false], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200, undefined], |
| defined: [true, false], |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'blink::Node', |
| size: [331776, 819200], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [undefined, 819200], |
| defined: [false, true], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [1044480, 1044480], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [15360, undefined], |
| defined: [true, false], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [716800, 614400], |
| defined: [true, true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [153600, 122880], |
| defined: [true, true], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'MissingSumOverAllTypes', |
| size: [51200, undefined], |
| defined: [true, false], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200, undefined], |
| defined: [true, false], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200, undefined], |
| defined: [true, false], |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'WTF::StringImpl', |
| size: [undefined, 126362], |
| defined: [false, true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [409600, 524288], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [15360, 131072], |
| defined: [true, true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [3452928, 4194304], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [2404352, 2621440], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [307200, undefined], |
| defined: [true, false], |
| children: [ |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [15360, undefined], |
| defined: [true, false], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [2097152, 2516582], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [2097152, undefined], |
| defined: [true, false], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [20480, 20480], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [15360, undefined], |
| defined: [true, false], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'WTF::StringImpl', |
| size: [undefined, 126362], |
| defined: [false, true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [2097152, undefined], |
| defined: [true, false], |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [737280, 634880], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [20480, 20480], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [15360, undefined], |
| defined: [true, false], |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'blink::Node', |
| size: [undefined, 819200], |
| defined: [false, true], |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'WTF::StringImpl', |
| size: [undefined, 126362], |
| defined: [false, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [undefined, 126362], |
| defined: [false, true], |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'MissingParent', |
| size: [10, undefined], |
| defined: [true, false], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [10, undefined], |
| defined: [true, false], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [1048576, 1258291], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [1048576, 1127219], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [1024000, 1024000], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [716800, 614400], |
| defined: [true, true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [153600, 122880], |
| defined: [true, true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [20480, 20480], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [20480, 20480], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [15360, undefined], |
| defined: [true, false], |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [1044480, 1044480], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [15360, undefined], |
| defined: [true, false], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [716800, 614400], |
| defined: [true, true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [153600, 122880], |
| defined: [true, true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [15360, 131072], |
| defined: [true, true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [737280, 634880], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [20480, 20480], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [15360, undefined], |
| defined: [true, false], |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'blink::Node', |
| size: [331776, 1048576], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [331776, 819200], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [331776, 819200], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [undefined, 819200], |
| defined: [false, true], |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [331776, 819200], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [undefined, 819200], |
| defined: [false, true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [undefined, 819200], |
| defined: [false, true], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'MissingSumOverAllTypes', |
| size: [51200, undefined], |
| defined: [true, false], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [51200, undefined], |
| defined: [true, false], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200, undefined], |
| defined: [true, false], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200, undefined], |
| defined: [true, false], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200, undefined], |
| defined: [true, false], |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200, undefined], |
| defined: [true, false], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200, undefined], |
| defined: [true, false], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [51200, undefined], |
| defined: [true, false], |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'WTF::StringImpl', |
| size: [undefined, 126362], |
| defined: [false, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [undefined, 126362], |
| defined: [false, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [undefined, 126362], |
| defined: [false, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [undefined, 126362], |
| defined: [false, true], |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [undefined, 126362], |
| defined: [false, true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [undefined, 126362], |
| defined: [false, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [undefined, 126362], |
| defined: [false, true], |
| } |
| ] |
| } |
| ] |
| } |
| ] |
| } |
| ]); |
| |
| changeView(viewEl, TOP_DOWN_TREE_VIEW); |
| checkTable(viewEl, AggregationMode.DIFF, false /* hide info bar */, [ |
| { |
| dimension: ROOT, |
| title: 'partition_alloc', |
| size: [4194304, 4954521], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [4194304, 4823449], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [1406976, 2170880], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [102400, 393216], |
| defined: [true, true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [1048576, 1572864], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [716800, 614400], |
| defined: [true, true], |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: '<other>', |
| size: [331776, 139264], |
| defined: [true, true], |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'blink::Node', |
| size: [undefined, 819200], |
| defined: [false, true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [204800, 204800], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [undefined, 204800], |
| defined: [false, true], |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [153600, 122880], |
| defined: [true, true], |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: '<other>', |
| size: [51200, 81920], |
| defined: [true, true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: '<other>', |
| size: [51200, undefined], |
| defined: [true, false], |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'blink::Node', |
| size: [331776, 819200], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [undefined, 819200], |
| defined: [false, true], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [1024000, 1024000], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [716800, 614400], |
| defined: [true, true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [153600, 122880], |
| defined: [true, true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: '<other>', |
| size: [153600, 286720], |
| defined: [true, true], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: '<other>', |
| size: [51200, 327680], |
| defined: [true, true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [2404352, 2621440], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [2404352, 2621440], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [307200, undefined], |
| defined: [true, false], |
| children: [ |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [15360, undefined], |
| defined: [true, false], |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: '<other>', |
| size: [291840, undefined], |
| defined: [true, false], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [2097152, 2516582], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [2097152, undefined], |
| defined: [true, false], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: '<other>', |
| size: [undefined, 104858], |
| defined: [false, true], |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [20480, 20480], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [15360, undefined], |
| defined: [true, false], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: '<other>', |
| size: [5120, undefined], |
| defined: [true, false], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: '<other>', |
| size: [2383872, 2474598], |
| defined: [true, true], |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'WTF::StringImpl', |
| size: [undefined, 126362], |
| defined: [false, true], |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: '<other>', |
| size: [382976, 31129], |
| defined: [true, true], |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [1048576, 1127219], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [1024000, 1024000], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [716800, 614400], |
| defined: [true, true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [153600, 122880], |
| defined: [true, true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: '<other>', |
| size: [153600, 286720], |
| defined: [true, true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: '<other>', |
| size: [24576, 103219], |
| defined: [true, true], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: '<other>', |
| size: [3145728, 3696230], |
| defined: [true, true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [undefined, 131072], |
| defined: [false, true], |
| children: [ |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [undefined, 131072], |
| defined: [false, true], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'v8::Context', |
| size: [1048576, 1258291], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'MessageLoop::RunTask', |
| size: [1048576, 1127219], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [1024000, 1024000], |
| defined: [true, true], |
| children: [ |
| { |
| dimension: STACK_FRAME, |
| title: 'V8.Execute', |
| size: [716800, 614400], |
| defined: [true, true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: 'FunctionCall', |
| size: [153600, 122880], |
| defined: [true, true], |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: '<other>', |
| size: [153600, 286720], |
| defined: [true, true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: '<other>', |
| size: [24576, 103219], |
| defined: [true, true], |
| } |
| ] |
| }, |
| { |
| dimension: STACK_FRAME, |
| title: '<self>', |
| size: [undefined, 131072], |
| defined: [false, true], |
| } |
| ] |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: 'blink::Node', |
| size: [331776, 1048576], |
| defined: [true, true], |
| }, |
| { |
| dimension: OBJECT_TYPE, |
| title: '<other>', |
| size: [2813952, 2647654], |
| defined: [true, true], |
| } |
| ] |
| } |
| ]); |
| }); |
| |
| test('instantiate_multipleMax', function() { |
| var heapDumps = createHeapDumps(); |
| |
| var viewEl = tr.ui.analysis.createTestPane( |
| 'tr-ui-a-memory-dump-heap-details-pane'); |
| viewEl.heapDumps = heapDumps; |
| viewEl.aggregationMode = AggregationMode.MAX; |
| viewEl.rebuild(); |
| this.addHTMLOutput(viewEl); |
| |
| changeView(viewEl, TOP_DOWN_HEAVY_VIEW); |
| checkTable(viewEl, AggregationMode.MAX, true /* show info bar */, [ |
| { |
| dimension: ROOT, |
| title: 'partition_alloc', |
| size: [4194304, 4954521], |
| defined: [true, true], |
| children: 9 // No need to check the full structure again. |
| } |
| ]); |
| }); |
| |
| test('instantiate_multipleWithUndefined', function() { |
| var heapDumps = createHeapDumps(); |
| heapDumps.splice(1, 0, undefined); |
| |
| var viewEl = tr.ui.analysis.createTestPane( |
| 'tr-ui-a-memory-dump-heap-details-pane'); |
| viewEl.heapDumps = heapDumps; |
| viewEl.aggregationMode = AggregationMode.DIFF; |
| viewEl.rebuild(); |
| this.addHTMLOutput(viewEl); |
| |
| // Top-down tree view (default). |
| checkTable(viewEl, AggregationMode.DIFF, false /* hide info bar */, [ |
| { |
| dimension: ROOT, |
| title: 'partition_alloc', |
| size: [4194304, undefined, 4954521], |
| defined: [true, false, true], |
| children: 5 // No need to check the full structure again. |
| } |
| ]); |
| }); |
| }); |
| </script> |