blob: 06c75d876a0572c3b049c4fae04468a16d9e9182 [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/base/unit.html">
<link rel='import' href='/tracing/core/test_utils.html'>
<link rel='import' href='/tracing/model/heap_dump.html'>
<link rel='import' href='/tracing/model/memory_dump_test_utils.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 ViewType = tr.b.MultiDimensionalViewBuilder.ViewType;
var TOP_DOWN_TREE_VIEW = ViewType.TOP_DOWN_TREE_VIEW;
var TOP_DOWN_HEAVY_VIEW = ViewType.TOP_DOWN_HEAVY_VIEW;
var BOTTOM_UP_HEAVY_VIEW = ViewType.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 AllocationCountColumn = tr.ui.analysis.AllocationCountColumn;
var AggregationMode = tr.ui.analysis.MemoryColumn.AggregationMode;
var addGlobalMemoryDump = tr.model.MemoryDumpTestUtils.addGlobalMemoryDump;
var addProcessMemoryDump = tr.model.MemoryDumpTestUtils.addProcessMemoryDump;
var checkColumns = tr.ui.analysis.checkColumns;
var checkNumericFields = tr.ui.analysis.checkNumericFields;
var checkSizeNumericFields = tr.ui.analysis.checkSizeNumericFields;
var isElementDisplayed = tr.ui.analysis.isElementDisplayed;
var unitlessNumber_smallerIsBetter =
tr.b.Unit.byName.unitlessNumber_smallerIsBetter;
function createHeapDumps(withCount) {
var model = new tr.Model();
var process = model.getOrCreateProcess(1);
function addHeapEntry(heapDump, stackFrames, objectTypeName, size, count) {
var leafStackFrame = stackFrames === undefined ? undefined :
tr.c.TestUtils.newStackTrace(model, stackFrames);
heapDump.addEntry(leafStackFrame, objectTypeName, size,
withCount ? count : undefined);
}
// First timestamp.
var gmd1 = addGlobalMemoryDump(model, {ts: -10});
var pmd1 = addProcessMemoryDump(gmd1, process, {ts: -11});
var hd1 = new HeapDump(pmd1, 'partition_alloc');
addHeapEntry(hd1, undefined /* sum over all traces */,
undefined /* sum over all types */, 4194304 /* 4 MiB */, 1000);
addHeapEntry(hd1, undefined /* sum over all traces */, 'v8::Context',
1048576 /* 1 MiB */, 200);
addHeapEntry(hd1, undefined /* sum over all traces */, 'blink::Node',
331776 /* 324 KiB */, 10);
addHeapEntry(hd1, ['MessageLoop::RunTask'],
undefined /* sum over all types */, 4194304 /* 4 MiB */, 1000);
addHeapEntry(hd1, ['MessageLoop::RunTask'], 'v8::Context',
1048576 /* 1 MiB */, 200);
addHeapEntry(hd1, ['MessageLoop::RunTask', 'FunctionCall'],
undefined /* sum over all types */, 1406976 /* 1.3 MiB */, 299);
addHeapEntry(hd1, ['MessageLoop::RunTask', 'FunctionCall'],
'blink::Node', 331776 /* 324 KiB */, 10);
addHeapEntry(hd1, ['MessageLoop::RunTask', 'FunctionCall'], 'v8::Context',
1024000 /* 1000 KiB */, 176);
addHeapEntry(hd1, ['MessageLoop::RunTask', 'FunctionCall', '<self>'],
undefined /* sum over all types */, 102400 /* 100 KiB */, 30);
addHeapEntry(hd1, ['MessageLoop::RunTask', 'FunctionCall', 'V8.Execute'],
'v8::Context', 716800 /* 700 KiB */, 100);
addHeapEntry(hd1, ['MessageLoop::RunTask', 'FunctionCall', 'V8.Execute'],
undefined /* sum over all types */, 1048576 /* 1 MiB */, 101);
addHeapEntry(hd1, ['MessageLoop::RunTask', 'FunctionCall', 'FunctionCall'],
undefined /* sum over all types */,
153600 /* 150 KiB, lower than the actual sum (should be ignored) */,
25 /* the allocation count should, however, NOT be ignored */);
addHeapEntry(hd1, ['MessageLoop::RunTask', 'FunctionCall', 'FunctionCall'],
'v8::Context', 153600 /* 150 KiB */, 15);
// The following entry should not appear in the tree-view because there is
// no entry for its parent stack frame.
addHeapEntry(hd1, ['MessageLoop::RunTask', 'MissingParent', 'FunctionCall'],
undefined /* sum over all types */, 10 /* 10 B */, 2);
// 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.
addHeapEntry(hd1,
['MessageLoop::RunTask', 'FunctionCall', 'FunctionCall',
'FunctionCall'],
'MissingSumOverAllTypes', 51200 /* 50 KiB */, 9);
addHeapEntry(hd1, ['MessageLoop::RunTask', 'V8.Execute'],
undefined /* sum over all types */, 2404352 /* 2.3 MiB */, 399);
addHeapEntry(hd1, ['MessageLoop::RunTask', 'V8.Execute', 'FunctionCall'],
undefined /* sum over all types */, 2404352 /* 2.3 MiB */, 399);
addHeapEntry(hd1, ['MessageLoop::RunTask', 'V8.Execute', 'FunctionCall'],
'v8::Context', 20480 /* 20 KiB */, 6);
addHeapEntry(hd1,
['MessageLoop::RunTask', 'V8.Execute', 'FunctionCall', '<self>'],
'v8::Context', 15360 /* 15 KiB */, 5);
addHeapEntry(hd1,
['MessageLoop::RunTask', 'V8.Execute', 'FunctionCall', 'V8.Execute'],
undefined /* sum over all types */, 2097152 /* 2 MiB */, 99);
addHeapEntry(hd1,
['MessageLoop::RunTask', 'V8.Execute', 'FunctionCall', 'V8.Execute',
'V8.Execute'],
undefined /* sum over all types */, 2097152 /* 2 MiB */, 99);
addHeapEntry(hd1,
['MessageLoop::RunTask', 'V8.Execute', 'FunctionCall', '<self>'],
undefined /* sum over all types */, 307200 /* 300 KiB */, 300);
// Second timestamp.
var gmd2 = addGlobalMemoryDump(model, {ts: 10});
var pmd2 = addProcessMemoryDump(gmd2, process, {ts: 11});
var hd2 = new HeapDump(pmd2, 'partition_alloc');
addHeapEntry(hd2, undefined /* sum over all traces */,
undefined /* sum over all types */,
3145728 /* 3 MiB, lower than the actual sum (should be ignored) */,
900 /* the allocation count should, however, NOT be ignored */);
addHeapEntry(hd2, undefined /* sum over all traces */,
'v8::Context', 1258291 /* 1.2 MiB */, 520);
addHeapEntry(hd2, undefined /* sum over all traces */,
'blink::Node', 1048576 /* 1 MiB */, 5);
addHeapEntry(hd2, ['<self>'], undefined /* sum over all types */,
131072 /* 128 KiB */, 16);
addHeapEntry(hd2, ['<self>'], 'v8::Context', 131072 /* 128 KiB */, 16);
addHeapEntry(hd2, ['MessageLoop::RunTask'],
undefined /* sum over all types */, 4823449 /* 4.6 MiB */, 884);
addHeapEntry(hd2, ['MessageLoop::RunTask'], 'v8::Context',
1127219 /* 1.1 MiB */, 317);
addHeapEntry(hd2, ['MessageLoop::RunTask', 'FunctionCall'],
undefined /* sum over all types */, 2170880 /* 2.1 MiB */, 600);
addHeapEntry(hd2, ['MessageLoop::RunTask', 'FunctionCall'], 'v8::Context',
1024000 /* 1000 KiB */, 500);
addHeapEntry(hd2, ['MessageLoop::RunTask', 'FunctionCall'], 'blink::Node',
819200 /* 800 KiB */, 4);
addHeapEntry(hd2, ['MessageLoop::RunTask', 'FunctionCall', 'V8.Execute'],
undefined /* sum over all types */, 1572864 /* 1.5 MiB */, 270);
addHeapEntry(hd2, ['MessageLoop::RunTask', 'FunctionCall', 'V8.Execute'],
'v8::Context', 614400 /* 600 KiB */, 123);
addHeapEntry(hd2, ['MessageLoop::RunTask', 'FunctionCall', 'V8.Execute'],
'blink::Node', 819200 /* 800 KiB */, 4);
addHeapEntry(hd2, ['MessageLoop::RunTask', 'FunctionCall', 'FunctionCall'],
undefined /* sum over all types */, 204800 /* 200 KiB */, 313);
addHeapEntry(hd2, ['MessageLoop::RunTask', 'FunctionCall', 'FunctionCall'],
'v8::Context', 122880 /* 120 KiB */, 270);
addHeapEntry(hd2,
['MessageLoop::RunTask', 'FunctionCall', 'FunctionCall',
'FunctionCall'],
undefined /* sum over all types */, 204800 /* 200 KiB */, 313);
addHeapEntry(hd2, ['MessageLoop::RunTask', 'FunctionCall', '<self>'],
undefined /* sum over all types */, 393216 /* 384 KiB */, 17);
addHeapEntry(hd2, ['MessageLoop::RunTask', 'V8.Execute'],
undefined /* sum over all types */, 2621440 /* 2.5 MiB */, 199);
addHeapEntry(hd2, ['MessageLoop::RunTask', 'V8.Execute', 'FunctionCall'],
undefined /* sum over all types */, 2621440 /* 2.5 MiB */, 199);
addHeapEntry(hd2, ['MessageLoop::RunTask', 'V8.Execute', 'FunctionCall'],
'v8::Context', 20480 /* 20 KiB */, 4);
addHeapEntry(hd2, ['MessageLoop::RunTask', 'V8.Execute', 'FunctionCall'],
'WTF::StringImpl', 126362 /* 123.4 KiB */, 56);
addHeapEntry(hd2,
['MessageLoop::RunTask', 'V8.Execute', 'FunctionCall', 'V8.Execute'],
undefined /* sum over all types */, 2516582 /* 2.4 MiB */, 158);
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_WITHOUT_COUNT = [
{ title: 'Stack frame', type: TitleColumn, noAggregation: true },
{ title: 'Size', type: NumericMemoryColumn }
];
var EXPECTED_COLUMNS_WITH_COUNT = EXPECTED_COLUMNS_WITHOUT_COUNT.concat([
{ title: 'Count', type: AllocationCountColumn },
{ title: 'Average size per allocation', type: NumericMemoryColumn }
]);
function checkRow(columns, row, expectedDimension, expectedTitle,
expectedSizes, expectedCounts, expectedAverageSizes,
expectedDefinedValues) {
var formattedTitle = columns[0].formatTitle(row);
switch (expectedDimension) {
case ROOT:
assert.equal(formattedTitle, expectedTitle);
break;
case STACK_FRAME:
case OBJECT_TYPE:
assert.lengthOf(Polymer.dom(formattedTitle).childNodes, 2);
assert.strictEqual(
Polymer.dom(formattedTitle).childNodes[0].textContent,
expectedDimension === STACK_FRAME ? '\u0192' : '\u24C9');
assert.strictEqual(
Polymer.dom(formattedTitle).childNodes[1].textContent,
expectedTitle);
break;
default:
throw new Error('Invalid expected dimension: ' + expectedDimension);
}
checkSizeNumericFields(row, columns[1], expectedSizes);
if (expectedCounts !== undefined) {
// Test sanity check.
assert.lengthOf(expectedCounts, expectedSizes.length);
assert.lengthOf(expectedAverageSizes, expectedSizes.length);
checkNumericFields(row, columns[2], expectedCounts,
unitlessNumber_smallerIsBetter);
checkSizeNumericFields(row, columns[3], expectedAverageSizes);
} else {
// Test sanity check.
assert.lengthOf(columns, EXPECTED_COLUMNS_WITHOUT_COUNT.length);
assert.isUndefined(expectedAverageSizes);
}
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.count, expectedRowStructure.averageSize,
expectedRowStructure.defined);
checkRows(columns, row.subRows, expectedRowStructure.children);
}
}
function checkTable(viewEl, expectedConfig, expectedStructure) {
checkDisplayedElements(viewEl, {
infoText: false,
tableAndSelector: true,
infoBar: !!expectedConfig.expectedInfoBarDisplayed
});
var table = viewEl.$.table;
var columns = table.tableColumns;
var rows = table.tableRows;
var expectedColumns = expectedConfig.expectedCountColumns ?
EXPECTED_COLUMNS_WITH_COUNT : EXPECTED_COLUMNS_WITHOUT_COUNT;
checkColumns(columns, expectedColumns,
expectedConfig.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 sizeFields = row.cells['Size'].fields;
generator.push('size: ');
generator.formatSingleLineList(sizeFields, function(field) {
generator.push(
field === undefined ? 'undefined' : String(field.value));
});
generator.push(',');
generator.breakLine();
if (row.cells['Count'] !== undefined) {
var countFields = row.cells['Count'].fields;
generator.push('count: ');
generator.formatSingleLineList(countFields, function(field) {
generator.push(
field === undefined ? 'undefined' : String(field.value));
});
generator.push(',');
generator.breakLine();
generator.push('averageSize: ');
generator.formatSingleLineList(row.cells['Average size'].fields,
function(field, index) {
if (field === undefined) {
generator.push('undefined');
} else if (field.value === 0) {
generator.push('0');
} else {
generator.push(String(sizeFields[index].value) + ' / ' +
String(countFields[index].value));
}
});
generator.push(',');
generator.breakLine();
}
generator.push('defined: ');
generator.formatSingleLineList(sizeFields, function(field) {
generator.push(String(field !== undefined));
});
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(false).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,
{ /* empty expectedConfig */ },
[
{
dimension: ROOT,
title: 'partition_alloc',
size: [0],
defined: [true]
}
]);
changeView(viewEl, TOP_DOWN_HEAVY_VIEW);
checkTable(viewEl,
{ expectedInfoBarDisplayed: true },
[
{
dimension: ROOT,
title: 'partition_alloc',
size: [0],
defined: [true]
}
]);
changeView(viewEl, BOTTOM_UP_HEAVY_VIEW);
checkTable(viewEl,
{ expectedInfoBarDisplayed: true },
[
{
dimension: ROOT,
title: 'partition_alloc',
size: [0],
defined: [true]
}
]);
changeView(viewEl, TOP_DOWN_TREE_VIEW);
});
test('instantiate_single', function() {
var heapDumps = createHeapDumps(false).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,
{ /* empty expectedConfig */ },
[
{
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,
{ expectedInfoBarDisplayed: true },
[
{
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,
{ expectedInfoBarDisplayed: true }, [
{
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(true /* with allocation counts */);
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,
{
expectedAggregationMode: AggregationMode.DIFF,
expectedInfoBarDisplayed: true,
expectedCountColumns: true
},
[
{
dimension: ROOT,
title: 'partition_alloc',
size: [4194304, 4954521],
count: [1000, 900],
averageSize: [4194304 / 1000, 4954521 / 900],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'MessageLoop::RunTask',
size: [4194304, 4823449],
count: [1000, 884],
averageSize: [4194304 / 1000, 4823449 / 884],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [1406976, 2170880],
count: [299, 600],
averageSize: [1406976 / 299, 2170880 / 600],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: '<self>',
size: [102400, 393216],
count: [30, 17],
averageSize: [102400 / 30, 393216 / 17],
defined: [true, true]
},
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [1048576, 1572864],
count: [101, 270],
averageSize: [1048576 / 101, 1572864 / 270],
defined: [true, true],
children: [
{
dimension: OBJECT_TYPE,
title: 'v8::Context',
size: [716800, 614400],
count: [100, 123],
averageSize: [716800 / 100, 614400 / 123],
defined: [true, true]
},
{
dimension: OBJECT_TYPE,
title: 'blink::Node',
size: [undefined, 819200],
count: [undefined, 4],
averageSize: [undefined, 819200 / 4],
defined: [false, true]
}
]
},
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [204800, 204800],
count: [25, 313],
averageSize: [204800 / 25, 204800 / 313],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [51200, 204800],
count: [9, 313],
averageSize: [51200 / 9, 204800 / 313],
defined: [true, true],
children: [
{
dimension: OBJECT_TYPE,
title: 'MissingSumOverAllTypes',
size: [51200, undefined],
count: [9, undefined],
averageSize: [51200 / 9, undefined],
defined: [true, false]
}
]
},
{
dimension: OBJECT_TYPE,
title: 'v8::Context',
size: [153600, 122880],
count: [15, 270],
averageSize: [153600 / 15, 122880 / 270],
defined: [true, true]
},
{
dimension: OBJECT_TYPE,
title: 'MissingSumOverAllTypes',
size: [51200, undefined],
count: [9, undefined],
averageSize: [51200 / 9, undefined],
defined: [true, false],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [51200, undefined],
count: [9, undefined],
averageSize: [51200 / 9, undefined],
defined: [true, false]
}
]
}
]
},
{
dimension: OBJECT_TYPE,
title: 'blink::Node',
size: [331776, 819200],
count: [10, 4],
averageSize: [331776 / 10, 819200 / 4],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [undefined, 819200],
count: [undefined, 4],
averageSize: [undefined, 819200 / 4],
defined: [false, true]
}
]
},
{
dimension: OBJECT_TYPE,
title: 'v8::Context',
size: [1024000, 1024000],
count: [176, 500],
averageSize: [1024000 / 176, 1024000 / 500],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [716800, 614400],
count: [100, 123],
averageSize: [716800 / 100, 614400 / 123],
defined: [true, true]
},
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [153600, 122880],
count: [15, 270],
averageSize: [153600 / 15, 122880 / 270],
defined: [true, true]
}
]
},
{
dimension: OBJECT_TYPE,
title: 'MissingSumOverAllTypes',
size: [51200, undefined],
count: [9, undefined],
averageSize: [51200 / 9, undefined],
defined: [true, false],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [51200, undefined],
count: [9, undefined],
averageSize: [51200 / 9, undefined],
defined: [true, false],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [51200, undefined],
count: [9, undefined],
averageSize: [51200 / 9, undefined],
defined: [true, false]
}
]
}
]
}
]
},
{
dimension: STACK_FRAME,
title: 'MissingParent',
size: [10, undefined],
count: [2, undefined],
averageSize: [10 / 2, undefined],
defined: [true, false],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [10, undefined],
count: [2, undefined],
averageSize: [10 / 2, undefined],
defined: [true, false]
}
]
},
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [2404352, 2621440],
count: [399, 199],
averageSize: [2404352 / 399, 2621440 / 199],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [2404352, 2621440],
count: [399, 199],
averageSize: [2404352 / 399, 2621440 / 199],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: '<self>',
size: [307200, undefined],
count: [300, undefined],
averageSize: [307200 / 300, undefined],
defined: [true, false],
children: [
{
dimension: OBJECT_TYPE,
title: 'v8::Context',
size: [15360, undefined],
count: [5, undefined],
averageSize: [15360 / 5, undefined],
defined: [true, false]
}
]
},
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [2097152, 2516582],
count: [99, 158],
averageSize: [2097152 / 99, 2516582 / 158],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [2097152, undefined],
count: [99, undefined],
averageSize: [2097152 / 99, undefined],
defined: [true, false]
}
]
},
{
dimension: OBJECT_TYPE,
title: 'v8::Context',
size: [20480, 20480],
count: [6, 4],
averageSize: [20480 / 6, 20480 / 4],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: '<self>',
size: [15360, undefined],
count: [5, undefined],
averageSize: [15360 / 5, undefined],
defined: [true, false]
}
]
},
{
dimension: OBJECT_TYPE,
title: 'WTF::StringImpl',
size: [undefined, 126362],
count: [undefined, 56],
averageSize: [undefined, 126362 / 56],
defined: [false, true]
}
]
},
{
dimension: OBJECT_TYPE,
title: 'v8::Context',
size: [20480, 20480],
count: [6, 4],
averageSize: [20480 / 6, 20480 / 4],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [20480, 20480],
count: [6, 4],
averageSize: [20480 / 6, 20480 / 4],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: '<self>',
size: [15360, undefined],
count: [5, undefined],
averageSize: [15360 / 5, undefined],
defined: [true, false]
}
]
}
]
},
{
dimension: OBJECT_TYPE,
title: 'WTF::StringImpl',
size: [undefined, 126362],
count: [undefined, 56],
averageSize: [undefined, 126362 / 56],
defined: [false, true],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [undefined, 126362],
count: [undefined, 56],
averageSize: [undefined, 126362 / 56],
defined: [false, true]
}
]
}
]
},
{
dimension: OBJECT_TYPE,
title: 'v8::Context',
size: [1048576, 1127219],
count: [200, 504],
averageSize: [1048576 / 200, 1127219 / 504],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [1024000, 1024000],
count: [176, 500],
averageSize: [1024000 / 176, 1024000 / 500],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [716800, 614400],
count: [100, 123],
averageSize: [716800 / 100, 614400 / 123],
defined: [true, true]
},
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [153600, 122880],
count: [15, 270],
averageSize: [153600 / 15, 122880 / 270],
defined: [true, true]
}
]
},
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [20480, 20480],
count: [6, 4],
averageSize: [20480 / 6, 20480 / 4],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [20480, 20480],
count: [6, 4],
averageSize: [20480 / 6, 20480 / 4],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: '<self>',
size: [15360, undefined],
count: [5, undefined],
averageSize: [15360 / 5, undefined],
defined: [true, false]
}
]
}
]
}
]
},
{
dimension: OBJECT_TYPE,
title: 'blink::Node',
size: [331776, 819200],
count: [10, 4],
averageSize: [331776 / 10, 819200 / 4],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [331776, 819200],
count: [10, 4],
averageSize: [331776 / 10, 819200 / 4],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [undefined, 819200],
count: [undefined, 4],
averageSize: [undefined, 819200 / 4],
defined: [false, true]
}
]
}
]
},
{
dimension: OBJECT_TYPE,
title: 'MissingSumOverAllTypes',
size: [51200, undefined],
count: [9, undefined],
averageSize: [51200 / 9, undefined],
defined: [true, false],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [51200, undefined],
count: [9, undefined],
averageSize: [51200 / 9, undefined],
defined: [true, false],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [51200, undefined],
count: [9, undefined],
averageSize: [51200 / 9, undefined],
defined: [true, false],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [51200, undefined],
count: [9, undefined],
averageSize: [51200 / 9, undefined],
defined: [true, false]
}
]
}
]
}
]
},
{
dimension: OBJECT_TYPE,
title: 'WTF::StringImpl',
size: [undefined, 126362],
count: [undefined, 56],
averageSize: [undefined, 126362 / 56],
defined: [false, true],
children: [
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [undefined, 126362],
count: [undefined, 56],
averageSize: [undefined, 126362 / 56],
defined: [false, true],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [undefined, 126362],
count: [undefined, 56],
averageSize: [undefined, 126362 / 56],
defined: [false, true]
}
]
}
]
}
]
},
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [3811338, 4792320],
count: [700, 799],
averageSize: [3811338 / 700, 4792320 / 799],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: '<self>',
size: [409600, 393216],
count: [330, 17],
averageSize: [409600 / 330, 393216 / 17],
defined: [true, true],
children: [
{
dimension: OBJECT_TYPE,
title: 'v8::Context',
size: [15360, undefined],
count: [5, undefined],
averageSize: [15360 / 5, undefined],
defined: [true, false]
}
]
},
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [3145728, 4089446],
count: [200, 428],
averageSize: [3145728 / 200, 4089446 / 428],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [2097152, undefined],
count: [99, undefined],
averageSize: [2097152 / 99, undefined],
defined: [true, false]
},
{
dimension: OBJECT_TYPE,
title: 'v8::Context',
size: [716800, 614400],
count: [100, 123],
averageSize: [716800 / 100, 614400 / 123],
defined: [true, true]
},
{
dimension: OBJECT_TYPE,
title: 'blink::Node',
size: [undefined, 819200],
count: [undefined, 4],
averageSize: [undefined, 819200 / 4],
defined: [false, true]
}
]
},
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [204800, 204800],
count: [25, 313],
averageSize: [204800 / 25, 204800 / 313],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [51200, 204800],
count: [9, 313],
averageSize: [51200 / 9, 204800 / 313],
defined: [true, true],
children: [
{
dimension: OBJECT_TYPE,
title: 'MissingSumOverAllTypes',
size: [51200, undefined],
count: [9, undefined],
averageSize: [51200 / 9, undefined],
defined: [true, false]
}
]
},
{
dimension: OBJECT_TYPE,
title: 'v8::Context',
size: [153600, 122880],
count: [15, 270],
averageSize: [153600 / 15, 122880 / 270],
defined: [true, true]
},
{
dimension: OBJECT_TYPE,
title: 'MissingSumOverAllTypes',
size: [51200, undefined],
count: [9, undefined],
averageSize: [51200 / 9, undefined],
defined: [true, false],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [51200, undefined],
count: [9, undefined],
averageSize: [51200 / 9, undefined],
defined: [true, false]
}
]
}
]
},
{
dimension: OBJECT_TYPE,
title: 'blink::Node',
size: [331776, 819200],
count: [10, 4],
averageSize: [331776 / 10, 819200 / 4],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [undefined, 819200],
count: [undefined, 4],
averageSize: [undefined, 819200 / 4],
defined: [false, true]
}
]
},
{
dimension: OBJECT_TYPE,
title: 'v8::Context',
size: [1044480, 1044480],
count: [182, 504],
averageSize: [1044480 / 182, 1044480 / 504],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: '<self>',
size: [15360, undefined],
count: [5, undefined],
averageSize: [15360 / 5, undefined],
defined: [true, false]
},
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [716800, 614400],
count: [100, 123],
averageSize: [716800 / 100, 614400 / 123],
defined: [true, true]
},
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [153600, 122880],
count: [15, 270],
averageSize: [153600 / 15, 122880 / 270],
defined: [true, true]
}
]
},
{
dimension: OBJECT_TYPE,
title: 'MissingSumOverAllTypes',
size: [51200, undefined],
count: [9, undefined],
averageSize: [51200 / 9, undefined],
defined: [true, false],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [51200, undefined],
count: [9, undefined],
averageSize: [51200 / 9, undefined],
defined: [true, false],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [51200, undefined],
count: [9, undefined],
averageSize: [51200 / 9, undefined],
defined: [true, false]
}
]
}
]
},
{
dimension: OBJECT_TYPE,
title: 'WTF::StringImpl',
size: [undefined, 126362],
count: [undefined, 56],
averageSize: [undefined, 126362 / 56],
defined: [false, true]
}
]
},
{
dimension: STACK_FRAME,
title: '<self>',
size: [409600, 524288],
count: [330, 33],
averageSize: [409600 / 330, 524288 / 33],
defined: [true, true],
children: [
{
dimension: OBJECT_TYPE,
title: 'v8::Context',
size: [15360, 131072],
count: [5, 16],
averageSize: [15360 / 5, 131072 / 16],
defined: [true, true]
}
]
},
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [3452928, 4194304],
count: [500, 469],
averageSize: [3452928 / 500, 4194304 / 469],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [2404352, 2621440],
count: [399, 199],
averageSize: [2404352 / 399, 2621440 / 199],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: '<self>',
size: [307200, undefined],
count: [300, undefined],
averageSize: [307200 / 300, undefined],
defined: [true, false],
children: [
{
dimension: OBJECT_TYPE,
title: 'v8::Context',
size: [15360, undefined],
count: [5, undefined],
averageSize: [15360 / 5, undefined],
defined: [true, false]
}
]
},
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [2097152, 2516582],
count: [99, 158],
averageSize: [2097152 / 99, 2516582 / 158],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [2097152, undefined],
count: [99, undefined],
averageSize: [2097152 / 99, undefined],
defined: [true, false]
}
]
},
{
dimension: OBJECT_TYPE,
title: 'v8::Context',
size: [20480, 20480],
count: [6, 4],
averageSize: [20480 / 6, 20480 / 4],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: '<self>',
size: [15360, undefined],
count: [5, undefined],
averageSize: [15360 / 5, undefined],
defined: [true, false]
}
]
},
{
dimension: OBJECT_TYPE,
title: 'WTF::StringImpl',
size: [undefined, 126362],
count: [undefined, 56],
averageSize: [undefined, 126362 / 56],
defined: [false, true]
}
]
},
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [2097152, undefined],
count: [99, undefined],
averageSize: [2097152 / 99, undefined],
defined: [true, false]
},
{
dimension: OBJECT_TYPE,
title: 'v8::Context',
size: [737280, 634880],
count: [106, 127],
averageSize: [737280 / 106, 634880 / 127],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [20480, 20480],
count: [6, 4],
averageSize: [20480 / 6, 20480 / 4],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: '<self>',
size: [15360, undefined],
count: [5, undefined],
averageSize: [15360 / 5, undefined],
defined: [true, false]
}
]
}
]
},
{
dimension: OBJECT_TYPE,
title: 'blink::Node',
size: [undefined, 819200],
count: [undefined, 4],
averageSize: [undefined, 819200 / 4],
defined: [false, true]
},
{
dimension: OBJECT_TYPE,
title: 'WTF::StringImpl',
size: [undefined, 126362],
count: [undefined, 56],
averageSize: [undefined, 126362 / 56],
defined: [false, true],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [undefined, 126362],
count: [undefined, 56],
averageSize: [undefined, 126362 / 56],
defined: [false, true]
}
]
}
]
},
{
dimension: STACK_FRAME,
title: 'MissingParent',
size: [10, undefined],
count: [2, undefined],
averageSize: [10 / 2, undefined],
defined: [true, false],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [10, undefined],
count: [2, undefined],
averageSize: [10 / 2, undefined],
defined: [true, false]
}
]
},
{
dimension: OBJECT_TYPE,
title: 'v8::Context',
size: [1048576, 1258291],
count: [200, 520],
averageSize: [1048576 / 200, 1258291 / 520],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'MessageLoop::RunTask',
size: [1048576, 1127219],
count: [200, 504],
averageSize: [1048576 / 200, 1127219 / 504],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [1024000, 1024000],
count: [176, 500],
averageSize: [1024000 / 176, 1024000 / 500],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [716800, 614400],
count: [100, 123],
averageSize: [716800 / 100, 614400 / 123],
defined: [true, true]
},
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [153600, 122880],
count: [15, 270],
averageSize: [153600 / 15, 122880 / 270],
defined: [true, true]
}
]
},
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [20480, 20480],
count: [6, 4],
averageSize: [20480 / 6, 20480 / 4],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [20480, 20480],
count: [6, 4],
averageSize: [20480 / 6, 20480 / 4],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: '<self>',
size: [15360, undefined],
count: [5, undefined],
averageSize: [15360 / 5, undefined],
defined: [true, false]
}
]
}
]
}
]
},
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [1044480, 1044480],
count: [182, 504],
averageSize: [1044480 / 182, 1044480 / 504],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: '<self>',
size: [15360, undefined],
count: [5, undefined],
averageSize: [15360 / 5, undefined],
defined: [true, false]
},
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [716800, 614400],
count: [100, 123],
averageSize: [716800 / 100, 614400 / 123],
defined: [true, true]
},
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [153600, 122880],
count: [15, 270],
averageSize: [153600 / 15, 122880 / 270],
defined: [true, true]
}
]
},
{
dimension: STACK_FRAME,
title: '<self>',
size: [15360, 131072],
count: [5, 16],
averageSize: [15360 / 5, 131072 / 16],
defined: [true, true]
},
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [737280, 634880],
count: [106, 127],
averageSize: [737280 / 106, 634880 / 127],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [20480, 20480],
count: [6, 4],
averageSize: [20480 / 6, 20480 / 4],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: '<self>',
size: [15360, undefined],
count: [5, undefined],
averageSize: [15360 / 5, undefined],
defined: [true, false]
}
]
}
]
}
]
},
{
dimension: OBJECT_TYPE,
title: 'blink::Node',
size: [331776, 1048576],
count: [10, 5],
averageSize: [331776 / 10, 1048576 / 5],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'MessageLoop::RunTask',
size: [331776, 819200],
count: [10, 4],
averageSize: [331776 / 10, 819200 / 4],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [331776, 819200],
count: [10, 4],
averageSize: [331776 / 10, 819200 / 4],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [undefined, 819200],
count: [undefined, 4],
averageSize: [undefined, 819200 / 4],
defined: [false, true]
}
]
}
]
},
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [331776, 819200],
count: [10, 4],
averageSize: [331776 / 10, 819200 / 4],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [undefined, 819200],
count: [undefined, 4],
averageSize: [undefined, 819200 / 4],
defined: [false, true]
}
]
},
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [undefined, 819200],
count: [undefined, 4],
averageSize: [undefined, 819200 / 4],
defined: [false, true]
}
]
},
{
dimension: OBJECT_TYPE,
title: 'MissingSumOverAllTypes',
size: [51200, undefined],
count: [9, undefined],
averageSize: [51200 / 9, undefined],
defined: [true, false],
children: [
{
dimension: STACK_FRAME,
title: 'MessageLoop::RunTask',
size: [51200, undefined],
count: [9, undefined],
averageSize: [51200 / 9, undefined],
defined: [true, false],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [51200, undefined],
count: [9, undefined],
averageSize: [51200 / 9, undefined],
defined: [true, false],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [51200, undefined],
count: [9, undefined],
averageSize: [51200 / 9, undefined],
defined: [true, false],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [51200, undefined],
count: [9, undefined],
averageSize: [51200 / 9, undefined],
defined: [true, false]
}
]
}
]
}
]
},
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [51200, undefined],
count: [9, undefined],
averageSize: [51200 / 9, undefined],
defined: [true, false],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [51200, undefined],
count: [9, undefined],
averageSize: [51200 / 9, undefined],
defined: [true, false],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [51200, undefined],
count: [9, undefined],
averageSize: [51200 / 9, undefined],
defined: [true, false]
}
]
}
]
}
]
},
{
dimension: OBJECT_TYPE,
title: 'WTF::StringImpl',
size: [undefined, 126362],
count: [undefined, 56],
averageSize: [undefined, 126362 / 56],
defined: [false, true],
children: [
{
dimension: STACK_FRAME,
title: 'MessageLoop::RunTask',
size: [undefined, 126362],
count: [undefined, 56],
averageSize: [undefined, 126362 / 56],
defined: [false, true],
children: [
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [undefined, 126362],
count: [undefined, 56],
averageSize: [undefined, 126362 / 56],
defined: [false, true],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [undefined, 126362],
count: [undefined, 56],
averageSize: [undefined, 126362 / 56],
defined: [false, true]
}
]
}
]
},
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [undefined, 126362],
count: [undefined, 56],
averageSize: [undefined, 126362 / 56],
defined: [false, true]
},
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [undefined, 126362],
count: [undefined, 56],
averageSize: [undefined, 126362 / 56],
defined: [false, true],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [undefined, 126362],
count: [undefined, 56],
averageSize: [undefined, 126362 / 56],
defined: [false, true]
}
]
}
]
}
]
}
]);
changeView(viewEl, TOP_DOWN_TREE_VIEW);
checkTable(viewEl,
{
expectedAggregationMode: AggregationMode.DIFF,
expectedCountColumns: true
},
[
{
dimension: ROOT,
title: 'partition_alloc',
size: [4194304, 4954521],
count: [1000, 900],
averageSize: [4194304 / 1000, 4954521 / 900],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'MessageLoop::RunTask',
size: [4194304, 4823449],
count: [1000, 884],
averageSize: [4194304 / 1000, 4823449 / 884],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [1406976, 2170880],
count: [299, 600],
averageSize: [1406976 / 299, 2170880 / 600],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: '<self>',
size: [102400, 393216],
count: [30, 17],
averageSize: [102400 / 30, 393216 / 17],
defined: [true, true]
},
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [1048576, 1572864],
count: [101, 270],
averageSize: [1048576 / 101, 1572864 / 270],
defined: [true, true],
children: [
{
dimension: OBJECT_TYPE,
title: 'v8::Context',
size: [716800, 614400],
count: [100, 123],
averageSize: [716800 / 100, 614400 / 123],
defined: [true, true]
},
{
dimension: OBJECT_TYPE,
title: '<other>',
size: [331776, 139264],
count: [1, 143],
averageSize: [331776 / 1, 139264 / 143],
defined: [true, true]
},
{
dimension: OBJECT_TYPE,
title: 'blink::Node',
size: [undefined, 819200],
count: [undefined, 4],
averageSize: [undefined, 819200 / 4],
defined: [false, true]
}
]
},
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [204800, 204800],
count: [25, 313],
averageSize: [204800 / 25, 204800 / 313],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [undefined, 204800],
count: [undefined, 313],
averageSize: [undefined, 204800 / 313],
defined: [false, true]
},
{
dimension: OBJECT_TYPE,
title: 'v8::Context',
size: [153600, 122880],
count: [15, 270],
averageSize: [153600 / 15, 122880 / 270],
defined: [true, true]
},
{
dimension: OBJECT_TYPE,
title: '<other>',
size: [51200, 81920],
count: [10, 43],
averageSize: [51200 / 10, 81920 / 43],
defined: [true, true]
}
]
},
{
dimension: STACK_FRAME,
title: '<other>',
size: [51200, undefined],
count: [143, undefined],
averageSize: [51200 / 143, undefined],
defined: [true, false]
},
{
dimension: OBJECT_TYPE,
title: 'blink::Node',
size: [331776, 819200],
count: [10, 4],
averageSize: [331776 / 10, 819200 / 4],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [undefined, 819200],
count: [undefined, 4],
averageSize: [undefined, 819200 / 4],
defined: [false, true]
}
]
},
{
dimension: OBJECT_TYPE,
title: 'v8::Context',
size: [1024000, 1024000],
count: [176, 500],
averageSize: [1024000 / 176, 1024000 / 500],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [716800, 614400],
count: [100, 123],
averageSize: [716800 / 100, 614400 / 123],
defined: [true, true]
},
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [153600, 122880],
count: [15, 270],
averageSize: [153600 / 15, 122880 / 270],
defined: [true, true]
},
{
dimension: STACK_FRAME,
title: '<other>',
size: [153600, 286720],
count: [61, 107],
averageSize: [153600 / 61, 286720 / 107],
defined: [true, true]
}
]
},
{
dimension: OBJECT_TYPE,
title: '<other>',
size: [51200, 327680],
count: [113, 96],
averageSize: [51200 / 113, 327680 / 96],
defined: [true, true]
}
]
},
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [2404352, 2621440],
count: [399, 199],
averageSize: [2404352 / 399, 2621440 / 199],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [2404352, 2621440],
count: [399, 199],
averageSize: [2404352 / 399, 2621440 / 199],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: '<self>',
size: [307200, undefined],
count: [300, undefined],
averageSize: [307200 / 300, undefined],
defined: [true, false],
children: [
{
dimension: OBJECT_TYPE,
title: 'v8::Context',
size: [15360, undefined],
count: [5, undefined],
averageSize: [15360 / 5, undefined],
defined: [true, false]
},
{
dimension: OBJECT_TYPE,
title: '<other>',
size: [291840, undefined],
count: [295, undefined],
averageSize: [291840 / 295, undefined],
defined: [true, false]
}
]
},
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [2097152, 2516582],
count: [99, 158],
averageSize: [2097152 / 99, 2516582 / 158],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [2097152, undefined],
count: [99, undefined],
averageSize: [2097152 / 99, undefined],
defined: [true, false]
}
]
},
{
dimension: STACK_FRAME,
title: '<other>',
size: [undefined, 104858],
count: [undefined, 41],
averageSize: [undefined, 104858 / 41],
defined: [false, true]
},
{
dimension: OBJECT_TYPE,
title: 'v8::Context',
size: [20480, 20480],
count: [6, 4],
averageSize: [20480 / 6, 20480 / 4],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: '<self>',
size: [15360, undefined],
count: [5, undefined],
averageSize: [15360 / 5, undefined],
defined: [true, false]
},
{
dimension: STACK_FRAME,
title: '<other>',
size: [5120, undefined],
count: [1, undefined],
averageSize: [5120 / 1, undefined],
defined: [true, false]
}
]
},
{
dimension: OBJECT_TYPE,
title: '<other>',
size: [2383872, 2474598],
count: [393, 139],
averageSize: [2383872 / 393, 2474598 / 139],
defined: [true, true]
},
{
dimension: OBJECT_TYPE,
title: 'WTF::StringImpl',
size: [undefined, 126362],
count: [undefined, 56],
averageSize: [undefined, 126362 / 56],
defined: [false, true]
}
]
}
]
},
{
dimension: STACK_FRAME,
title: '<other>',
size: [382976, 31129],
count: [302, 85],
averageSize: [382976 / 302, 31129 / 85],
defined: [true, true]
},
{
dimension: OBJECT_TYPE,
title: 'v8::Context',
size: [1048576, 1127219],
count: [200, 504],
averageSize: [1048576 / 200, 1127219 / 504],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [1024000, 1024000],
count: [176, 500],
averageSize: [1024000 / 176, 1024000 / 500],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [716800, 614400],
count: [100, 123],
averageSize: [716800 / 100, 614400 / 123],
defined: [true, true]
},
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [153600, 122880],
count: [15, 270],
averageSize: [153600 / 15, 122880 / 270],
defined: [true, true]
},
{
dimension: STACK_FRAME,
title: '<other>',
size: [153600, 286720],
count: [61, 107],
averageSize: [153600 / 61, 286720 / 107],
defined: [true, true]
}
]
},
{
dimension: STACK_FRAME,
title: '<other>',
size: [24576, 103219],
count: [24, 4],
averageSize: [24576 / 24, 103219 / 4],
defined: [true, true]
}
]
},
{
dimension: OBJECT_TYPE,
title: '<other>',
size: [3145728, 3696230],
count: [800, 380],
averageSize: [3145728 / 800, 3696230 / 380],
defined: [true, true]
}
]
},
{
dimension: STACK_FRAME,
title: '<self>',
size: [undefined, 131072],
count: [undefined, 16],
averageSize: [undefined, 131072 / 16],
defined: [false, true],
children: [
{
dimension: OBJECT_TYPE,
title: 'v8::Context',
size: [undefined, 131072],
count: [undefined, 16],
averageSize: [undefined, 131072 / 16],
defined: [false, true]
}
]
},
{
dimension: OBJECT_TYPE,
title: 'v8::Context',
size: [1048576, 1258291],
count: [200, 520],
averageSize: [1048576 / 200, 1258291 / 520],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'MessageLoop::RunTask',
size: [1048576, 1127219],
count: [200, 504],
averageSize: [1048576 / 200, 1127219 / 504],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [1024000, 1024000],
count: [176, 500],
averageSize: [1024000 / 176, 1024000 / 500],
defined: [true, true],
children: [
{
dimension: STACK_FRAME,
title: 'V8.Execute',
size: [716800, 614400],
count: [100, 123],
averageSize: [716800 / 100, 614400 / 123],
defined: [true, true]
},
{
dimension: STACK_FRAME,
title: 'FunctionCall',
size: [153600, 122880],
count: [15, 270],
averageSize: [153600 / 15, 122880 / 270],
defined: [true, true]
},
{
dimension: STACK_FRAME,
title: '<other>',
size: [153600, 286720],
count: [61, 107],
averageSize: [153600 / 61, 286720 / 107],
defined: [true, true]
}
]
},
{
dimension: STACK_FRAME,
title: '<other>',
size: [24576, 103219],
count: [24, 4],
averageSize: [24576 / 24, 103219 / 4],
defined: [true, true]
}
]
},
{
dimension: STACK_FRAME,
title: '<self>',
size: [undefined, 131072],
count: [undefined, 16],
averageSize: [undefined, 131072 / 16],
defined: [false, true]
}
]
},
{
dimension: OBJECT_TYPE,
title: 'blink::Node',
size: [331776, 1048576],
count: [10, 5],
averageSize: [331776 / 10, 1048576 / 5],
defined: [true, true]
},
{
dimension: OBJECT_TYPE,
title: '<other>',
size: [2813952, 2647654],
count: [790, 375],
averageSize: [2813952 / 790, 2647654 / 375],
defined: [true, true]
}
]
}
]);
});
test('instantiate_multipleMax', function() {
var heapDumps = createHeapDumps(false);
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,
{
expectedAggregationMode: AggregationMode.MAX,
expectedInfoBarDisplayed: true
},
[
{
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(false);
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,
{ expectedAggregationMode: AggregationMode.DIFF },
[
{
dimension: ROOT,
title: 'partition_alloc',
size: [4194304, undefined, 4954521],
defined: [true, false, true],
children: 5 // No need to check the full structure again.
}
]);
});
});
</script>