blob: 0d595a869af7ee74e83072064b677c4e5e54f6c5 [file] [log] [blame]
<!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>