| Index: tracing/tracing/metrics/system_health/memory_metric_test.html
|
| diff --git a/tracing/tracing/metrics/system_health/memory_metric_test.html b/tracing/tracing/metrics/system_health/memory_metric_test.html
|
| index 500333d61f910a0eb14e9686e67c17f539e048c2..f70dd2d02680d94aba787264e259cc8c8401266c 100644
|
| --- a/tracing/tracing/metrics/system_health/memory_metric_test.html
|
| +++ b/tracing/tracing/metrics/system_health/memory_metric_test.html
|
| @@ -5,6 +5,8 @@ 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/range.html">
|
| <link rel="import" href="/tracing/core/test_utils.html">
|
| <link rel="import" href="/tracing/metrics/system_health/memory_metric.html">
|
| <link rel="import" href="/tracing/model/container_memory_dump.html">
|
| @@ -32,7 +34,8 @@ tr.b.unittest.testSuite(function() {
|
| var sizeInBytes_smallerIsBetter =
|
| tr.v.Unit.byName.sizeInBytes_smallerIsBetter;
|
|
|
| - function memoryMetricTest(name, modelCallback, expectedNumerics) {
|
| + function memoryMetricTest(
|
| + name, modelCallback, opt_options, expectedNumerics) {
|
| test(name, function() {
|
| // Create a model and a fake value list.
|
| var model = tr.c.TestUtils.newModel(modelCallback);
|
| @@ -47,7 +50,7 @@ tr.b.unittest.testSuite(function() {
|
| };
|
|
|
| // Run the memory metric on the model.
|
| - tr.metrics.sh.memoryMetric(fakeValueList, model);
|
| + tr.metrics.sh.memoryMetric(fakeValueList, model, opt_options);
|
|
|
| // Check that the names of the added values match expectations.
|
| var actualValueNames = Object.keys(valueNameToValues).sort();
|
| @@ -158,13 +161,13 @@ tr.b.unittest.testSuite(function() {
|
|
|
| memoryMetricTest('noDumps_noBrowser', function(model) {
|
| createProcessWithName(model, 'Non-browser');
|
| - }, {
|
| + }, undefined /* opt_options */, {
|
| /* no values */
|
| });
|
|
|
| memoryMetricTest('noDumps_chrome', function(model) {
|
| createChromeBrowserProcess(model);
|
| - }, {
|
| + }, undefined /* opt_options */, {
|
| 'memory:chrome:all_processes:dump_count:detailed': {
|
| value: 0,
|
| unit: unitlessNumber_smallerIsBetter,
|
| @@ -190,7 +193,7 @@ tr.b.unittest.testSuite(function() {
|
| createWebViewProcess(model);
|
| createProcessWithName(model, 'Non-browser');
|
| createChromeBrowserProcess(model);
|
| - }, {
|
| + }, undefined /* opt_options */, {
|
| 'memory:chrome2:all_processes:dump_count:detailed': {
|
| value: 0,
|
| unit: unitlessNumber_smallerIsBetter,
|
| @@ -248,10 +251,10 @@ tr.b.unittest.testSuite(function() {
|
| });
|
|
|
| memoryMetricTest('dumpCountsOnly_unknownBrowser', function(model) {
|
| - addGlobalMemoryDump(model, 45, DETAILED);
|
| - addGlobalMemoryDump(model, 68, LIGHT);
|
| - addGlobalMemoryDump(model, 89, DETAILED);
|
| - }, {
|
| + addGlobalMemoryDump(model, {ts: 45, levelOfDetail: DETAILED});
|
| + addGlobalMemoryDump(model, {ts: 68, levelOfDetail: LIGHT});
|
| + addGlobalMemoryDump(model, {ts: 89, levelOfDetail: DETAILED});
|
| + }, undefined /* opt_options */, {
|
| 'memory:unknown_browser:all_processes:dump_count:detailed': {
|
| value: 2,
|
| unit: unitlessNumber_smallerIsBetter,
|
| @@ -274,9 +277,11 @@ tr.b.unittest.testSuite(function() {
|
|
|
| memoryMetricTest('dumpCountsOnly_webview', function(model) {
|
| var p = createWebViewProcess(model);
|
| - addProcessMemoryDump(addGlobalMemoryDump(model, 45, LIGHT), p, 45);
|
| - addProcessMemoryDump(addGlobalMemoryDump(model, 68, LIGHT), p, 68);
|
| - }, {
|
| + addProcessMemoryDump(addGlobalMemoryDump(
|
| + model, {ts: 45, levelOfDetail: LIGHT}), p, {ts: 45});
|
| + addProcessMemoryDump(addGlobalMemoryDump(
|
| + model, {ts: 68, levelOfDetail: LIGHT}), p, {ts: 68});
|
| + }, undefined /* opt_options */, {
|
| 'memory:webview:all_processes:dump_count:detailed': {
|
| value: 0,
|
| unit: unitlessNumber_smallerIsBetter,
|
| @@ -315,105 +320,113 @@ tr.b.unittest.testSuite(function() {
|
| var pUnknown = createProcessWithName(model, undefined);
|
|
|
| // Timestamp 1.
|
| - var gmd1 = addGlobalMemoryDump(model, 20);
|
| - var pmdBrowser1 = addProcessMemoryDump(gmd1, pBrowser, 19);
|
| + var gmd1 = addGlobalMemoryDump(model, {ts: 20});
|
| + var pmdBrowser1 = addProcessMemoryDump(gmd1, pBrowser, {ts: 19});
|
| pmdBrowser1.memoryAllocatorDumps = [
|
| - newAllocatorDump(pmdBrowser1, 'malloc', {
|
| - 'size': 8,
|
| - 'allocated_objects_size': 4
|
| - })
|
| + newAllocatorDump(pmdBrowser1, 'malloc', {numerics: {
|
| + size: 8,
|
| + allocated_objects_size: 4
|
| + }})
|
| ];
|
| - var pmdRendererA1 = addProcessMemoryDump(gmd1, pRendererA, 20);
|
| + var pmdRendererA1 = addProcessMemoryDump(gmd1, pRendererA, {ts: 20});
|
| pmdRendererA1.memoryAllocatorDumps = (function() {
|
| var mallocDump =
|
| - newAllocatorDump(pmdRendererA1, 'malloc', { 'size': 16 });
|
| + newAllocatorDump(pmdRendererA1, 'malloc', {numerics: {size: 16}});
|
| var partitionAllocDump =
|
| newAllocatorDump(pmdRendererA1, 'partition_alloc');
|
| addOwnershipLink(
|
| - addChildDump(partitionAllocDump, 'allocated_objects', { 'size': 32 }),
|
| - addChildDump(partitionAllocDump, 'partitions', { 'size': 24 }));
|
| + addChildDump(partitionAllocDump, 'allocated_objects',
|
| + {numerics: {size: 32}}),
|
| + addChildDump(partitionAllocDump, 'partitions',
|
| + {numerics: {size: 24}}));
|
| return [mallocDump, partitionAllocDump];
|
| })();
|
| - var pmdGpu1 = addProcessMemoryDump(gmd1, pPpapi, 21);
|
| + var pmdGpu1 = addProcessMemoryDump(gmd1, pPpapi, {ts: 21});
|
| pmdGpu1.memoryAllocatorDumps = [
|
| - newAllocatorDump(pmdGpu1, 'gpu', {
|
| - 'size': 30,
|
| - 'allocated_objects_size': 25
|
| - })
|
| + newAllocatorDump(pmdGpu1, 'gpu', {numerics: {
|
| + size: 30,
|
| + allocated_objects_size: 25
|
| + }})
|
| ];
|
|
|
| // Timestamp 2.
|
| - var gmd2 = addGlobalMemoryDump(model, 40);
|
| - var pmdBrowser2 = addProcessMemoryDump(gmd2, pBrowser, 41);
|
| + var gmd2 = addGlobalMemoryDump(model, {ts: 40});
|
| + var pmdBrowser2 = addProcessMemoryDump(gmd2, pBrowser, {ts: 41});
|
| pmdBrowser2.memoryAllocatorDumps = (function() {
|
| - var mallocDump = newAllocatorDump(pmdBrowser2, 'malloc', { 'size': 120 });
|
| + var mallocDump = newAllocatorDump(pmdBrowser2, 'malloc',
|
| + {numerics: {size: 120}});
|
| var tracingDump =
|
| - newAllocatorDump(pmdBrowser2, 'tracing', { 'size': 40 });
|
| + newAllocatorDump(pmdBrowser2, 'tracing', {numerics: {size: 40}});
|
| return [mallocDump, tracingDump];
|
| })();
|
| - var pmdRendererA2 = addProcessMemoryDump(gmd2, pRendererA, 39);
|
| + var pmdRendererA2 = addProcessMemoryDump(gmd2, pRendererA, {ts: 39});
|
| pmdRendererA2.memoryAllocatorDumps = (function() {
|
| var partitionAllocDump =
|
| newAllocatorDump(pmdRendererA2, 'partition_alloc');
|
| addOwnershipLink(
|
| addChildDump(partitionAllocDump, 'allocated_objects',
|
| - { 'size': 320 }),
|
| - addChildDump(partitionAllocDump, 'partitions', { 'size': 240 }));
|
| - var v8Dump = newAllocatorDump(pmdRendererA2, 'v8', { 'size': 650 });
|
| + {numerics: {size: 320}}),
|
| + addChildDump(partitionAllocDump, 'partitions',
|
| + {numerics: {size: 240}}));
|
| + var v8Dump = newAllocatorDump(pmdRendererA2, 'v8',
|
| + {numerics: {size: 650}});
|
| + var isolateDumpA = addChildDump(v8Dump, 'isolate_A');
|
| + addChildDump(isolateDumpA, 'malloc', {numerics: {size: 1 }});
|
| + var isolateDumpB = addChildDump(v8Dump, 'isolate_B');
|
| + addChildDump(isolateDumpB, 'malloc', {numerics: {size: 10 }});
|
| return [partitionAllocDump, v8Dump];
|
| })();
|
| - var pmdRendererB2 = addProcessMemoryDump(gmd2, pRendererB, 40);
|
| + var pmdRendererB2 = addProcessMemoryDump(gmd2, pRendererB, {ts: 40});
|
| pmdRendererB2.memoryAllocatorDumps = [
|
| - newAllocatorDump(pmdRendererB2, 'v8', {
|
| - 'size': 970,
|
| - 'allocated_objects_size': 860
|
| - }),
|
| - newAllocatorDump(pmdRendererB2, 'malloc', {
|
| - 'allocated_objects_size': 750
|
| - })
|
| + newAllocatorDump(pmdRendererB2, 'v8', {numerics: {
|
| + size: 970,
|
| + allocated_objects_size: 860
|
| + }}),
|
| + newAllocatorDump(pmdRendererB2, 'malloc',
|
| + {numerics: {allocated_objects_size: 750}})
|
| ];
|
| - var pmdUnknown = addProcessMemoryDump(gmd2, pUnknown, 42);
|
| + var pmdUnknown = addProcessMemoryDump(gmd2, pUnknown, {ts: 42});
|
| pmdUnknown.memoryAllocatorDumps = [
|
| - newAllocatorDump(pmdRendererB2, 'v8', {
|
| - 'size': 111
|
| - })
|
| + newAllocatorDump(pmdRendererB2, 'v8', {numerics: {size: 111}})
|
| ];
|
|
|
| // Timestamp 3.
|
| - var gmd3 = addGlobalMemoryDump(model, 60);
|
| - var pmdBrowser3 = addProcessMemoryDump(gmd3, pBrowser, 60);
|
| + var gmd3 = addGlobalMemoryDump(model, {ts: 60});
|
| + var pmdBrowser3 = addProcessMemoryDump(gmd3, pBrowser, {ts: 60});
|
| pmdBrowser3.memoryAllocatorDumps = [
|
| - newAllocatorDump(pmdBrowser3, 'malloc', {
|
| - 'size': 8000,
|
| - 'allocated_objects_size': 4000
|
| - })
|
| + newAllocatorDump(pmdBrowser3, 'malloc', {numerics: {
|
| + size: 8000,
|
| + allocated_objects_size: 4000
|
| + }})
|
| ];
|
| - var pmdRendererB3 = addProcessMemoryDump(gmd3, pRendererB, 61);
|
| + var pmdRendererB3 = addProcessMemoryDump(gmd3, pRendererB, {ts: 61});
|
| // Intentionally pmdRendererB3.memoryAllocatorDumps undefined.
|
| - var pmdGpu3 = addProcessMemoryDump(gmd3, pPpapi, 59);
|
| + var pmdGpu3 = addProcessMemoryDump(gmd3, pPpapi, {ts: 59});
|
| pmdGpu3.memoryAllocatorDumps = [
|
| - newAllocatorDump(pmdGpu3, 'gpu', { 'size': 300 })
|
| + newAllocatorDump(pmdGpu3, 'gpu', {numerics: {size: 300}})
|
| ];
|
|
|
| // Timestamp 4.
|
| - var gmd4 = addGlobalMemoryDump(model, 80);
|
| - var pmdBrowser4 = addProcessMemoryDump(gmd4, pBrowser, 81);
|
| + var gmd4 = addGlobalMemoryDump(model, {ts: 80});
|
| + var pmdBrowser4 = addProcessMemoryDump(gmd4, pBrowser, {ts: 81});
|
| pmdBrowser4.memoryAllocatorDumps = [
|
| - newAllocatorDump(pmdBrowser4, 'malloc', { 'size': 80000 })
|
| + newAllocatorDump(pmdBrowser4, 'malloc', {numerics: {size: 80000}})
|
| ];
|
| - var pmdRendererB4 = addProcessMemoryDump(gmd4, pRendererB, 79);
|
| + var pmdRendererB4 = addProcessMemoryDump(gmd4, pRendererB, {ts: 79});
|
| pmdRendererB4.memoryAllocatorDumps = (function() {
|
| - var v8Dump = newAllocatorDump(pmdRendererB4, 'v8', { 'size': 9e5 });
|
| + var v8Dump = newAllocatorDump(pmdRendererB4, 'v8',
|
| + {numerics: {size: 9e5}});
|
| var partitionAllocDump = newAllocatorDump(pmdRendererB4,
|
| - 'partition_alloc', { 'size': 5e5 });
|
| + 'partition_alloc', {numerics: {size: 5e5}});
|
| addOwnershipLink(partitionAllocDump, v8Dump);
|
| return [v8Dump, partitionAllocDump];
|
| })();
|
| - var pmdGpu4 = addProcessMemoryDump(gmd4, pPpapi, 80);
|
| + var pmdGpu4 = addProcessMemoryDump(gmd4, pPpapi, {ts: 80});
|
| pmdGpu4.memoryAllocatorDumps = [
|
| - newAllocatorDump(pmdGpu4, 'gpu', { 'memtrack_pss': 666 /* ignored */ })
|
| + newAllocatorDump(pmdGpu4, 'gpu',
|
| + {numerics: {memtrack_pss: 666 /* ignored */}})
|
| ];
|
| - }, {
|
| + }, undefined /* opt_options */, {
|
| 'memory:chrome:all_processes:dump_count:detailed': {
|
| value: 0,
|
| unit: unitlessNumber_smallerIsBetter,
|
| @@ -486,6 +499,13 @@ tr.b.unittest.testSuite(function() {
|
| unit: sizeInBytes_smallerIsBetter,
|
| description: 'effective size of tracing in all processes in Chrome'
|
| },
|
| + 'memory:chrome:all_processes:reported_by_chrome:v8:allocated_by_malloc:effective_size':
|
| + {
|
| + value: [0, 1 + 10, 0, 0],
|
| + unit: sizeInBytes_smallerIsBetter,
|
| + description: 'effective size of objects allocated by malloc for v8 ' +
|
| + 'in all processes in Chrome'
|
| + },
|
| 'memory:chrome:all_processes:reported_by_chrome:v8:effective_size': {
|
| value: [0, 650 + 970 + 111, 0, 4e5],
|
| unit: sizeInBytes_smallerIsBetter,
|
| @@ -600,6 +620,13 @@ tr.b.unittest.testSuite(function() {
|
| description: 'effective size of partition_alloc in renderer ' +
|
| 'processes in Chrome'
|
| },
|
| + 'memory:chrome:renderer_processes:reported_by_chrome:v8:allocated_by_malloc:effective_size':
|
| + {
|
| + value: [0, 1 + 10, 0, 0],
|
| + unit: sizeInBytes_smallerIsBetter,
|
| + description: 'effective size of objects allocated by malloc for v8 ' +
|
| + 'in renderer processes in Chrome'
|
| + },
|
| 'memory:chrome:renderer_processes:reported_by_chrome:v8:effective_size': {
|
| value: [0, 650 + 970, 0, 4e5],
|
| unit: sizeInBytes_smallerIsBetter,
|
| @@ -638,101 +665,100 @@ tr.b.unittest.testSuite(function() {
|
| var pGpu = createProcessWithName(model, 'GPU Process');
|
|
|
| // Timestamp 1.
|
| - var gmd1 = addGlobalMemoryDump(model, 10, DETAILED);
|
| - var pmdBrowser1 = addProcessMemoryDump(gmd1, pBrowser, 9);
|
| + var gmd1 = addGlobalMemoryDump(model, {ts: 10, levelOfDetail: DETAILED});
|
| + var pmdBrowser1 = addProcessMemoryDump(gmd1, pBrowser, {ts: 9});
|
| pmdBrowser1.vmRegions = VMRegionClassificationNode.fromRegions([
|
| new VMRegion(0xABCD, 128, 0, '/dev/ashmem/dalvik-non moving space',
|
| - { 'privateDirtyResident': 8 })
|
| + {privateDirtyResident: 8})
|
| ]);
|
| - var pmdRendererA1 = addProcessMemoryDump(gmd1, pRendererA, 10);
|
| + var pmdRendererA1 = addProcessMemoryDump(gmd1, pRendererA, {ts: 10});
|
| pmdRendererA1.vmRegions = VMRegionClassificationNode.fromRegions([
|
| new VMRegion(0xEF01, 256, 0, '[anon:libc_malloc]',
|
| - { 'privateDirtyResident': 17 })
|
| + {privateDirtyResident: 17})
|
| ]);
|
| - var pmdRendererB1 = addProcessMemoryDump(gmd1, pRendererB, 11);
|
| + var pmdRendererB1 = addProcessMemoryDump(gmd1, pRendererB, {ts: 11});
|
| pmdRendererB1.vmRegions = VMRegionClassificationNode.fromRegions([
|
| new VMRegion(0x2345, 512, 0, '[heap]',
|
| - { 'proportionalResident': 67, 'privateDirtyResident': 34 })
|
| + {proportionalResident: 67, privateDirtyResident: 34})
|
| ]);
|
| pmdRendererB1.memoryAllocatorDumps = [
|
| - newAllocatorDump(pmdRendererA4, 'v8', { 'code_and_metadata_size': 16 })
|
| + newAllocatorDump(pmdRendererA4, 'v8',
|
| + {numerics: {code_and_metadata_size: 16}})
|
| ];
|
| - var pmdGpu1 = addProcessMemoryDump(gmd1, pGpu, 10);
|
| + var pmdGpu1 = addProcessMemoryDump(gmd1, pGpu, {ts: 10});
|
| pmdGpu1.memoryAllocatorDumps = (function() {
|
| var gpuDump = newAllocatorDump(pmdGpu1, 'gpu');
|
| var memtrackDump = addChildDump(gpuDump, 'android_memtrack');
|
| - addChildDump(memtrackDump, 'gl', { 'memtrack_pss': 100 });
|
| - addChildDump(memtrackDump, 'graphics', { 'memtrack_pss': 200 });
|
| + addChildDump(memtrackDump, 'gl', {numerics: {memtrack_pss: 100}});
|
| + addChildDump(memtrackDump, 'graphics', {numerics: {memtrack_pss: 200}});
|
| return [gpuDump];
|
| })();
|
|
|
| // Timestamp 2 (light global memory dump, so it should be skipped for
|
| // mmaps_* values).
|
| - var gmd2 = addGlobalMemoryDump(model, 20, LIGHT);
|
| - var pmdBrowser2 = addProcessMemoryDump(gmd2, pBrowser, 18);
|
| + var gmd2 = addGlobalMemoryDump(model, {ts: 20, levelOfDetail: LIGHT});
|
| + var pmdBrowser2 = addProcessMemoryDump(gmd2, pBrowser, {ts: 18});
|
| pmdBrowser2.vmRegions = VMRegionClassificationNode.fromRegions([
|
| new VMRegion(0x999, 999, 999, '/dev/ashmem/dalvik-main space',
|
| - { 'proportionalResident': 999 })
|
| + {proportionalResident: 999})
|
| ]);
|
| - var pmdRendererA2 = addProcessMemoryDump(gmd2, pRendererA, 19);
|
| + var pmdRendererA2 = addProcessMemoryDump(gmd2, pRendererA, {ts: 19});
|
| pmdRendererA2.memoryAllocatorDumps = [
|
| - newAllocatorDump(pmdRendererA4, 'v8', {
|
| - 'bytecode_and_metadata_size': 678
|
| - })
|
| + newAllocatorDump(pmdRendererA4, 'v8',
|
| + {numerics: {bytecode_and_metadata_size: 678}})
|
| ];
|
| - var pmdRendererB2 = addProcessMemoryDump(gmd2, pRendererB, 21);
|
| - var pmdRendererC2 = addProcessMemoryDump(gmd2, pRendererC, 22);
|
| - var pmdGpu2 = addProcessMemoryDump(gmd2, pGpu, 20);
|
| + var pmdRendererB2 = addProcessMemoryDump(gmd2, pRendererB, {ts: 21});
|
| + var pmdRendererC2 = addProcessMemoryDump(gmd2, pRendererC, {ts: 22});
|
| + var pmdGpu2 = addProcessMemoryDump(gmd2, pGpu, {ts: 20});
|
| pmdGpu2.memoryAllocatorDumps = (function() {
|
| var gpuDump = newAllocatorDump(pmdGpu2, 'gpu');
|
| var memtrackDump = addChildDump(gpuDump, 'android_memtrack');
|
| - addChildDump(memtrackDump, 'gl', { 'memtrack_pss': 12345 });
|
| + addChildDump(memtrackDump, 'gl', {numerics: {memtrack_pss: 12345}});
|
| return [gpuDump];
|
| })();
|
|
|
| // Timestamp 3.
|
| - var gmd3 = addGlobalMemoryDump(model, 30, DETAILED);
|
| - var pmdBrowser3 = addProcessMemoryDump(gmd3, pBrowser, 30);
|
| + var gmd3 = addGlobalMemoryDump(model, {ts: 30, levelOfDetail: DETAILED});
|
| + var pmdBrowser3 = addProcessMemoryDump(gmd3, pBrowser, {ts: 30});
|
| pmdBrowser3.vmRegions = VMRegionClassificationNode.fromRegions([
|
| new VMRegion(0xABCD, 1024, 0, '/dev/ashmem/dalvik-non moving space',
|
| - { 'proportionalResident': 3, 'privateDirtyResident': 80 })
|
| + {proportionalResident: 3, privateDirtyResident: 80})
|
| ]);
|
| - var pmdRendererA3 = addProcessMemoryDump(gmd3, pRendererA, 29);
|
| + var pmdRendererA3 = addProcessMemoryDump(gmd3, pRendererA, {ts: 29});
|
| // Intentionally pmdRendererA3.vmRegions undefined.
|
| - var pmdRendererC3 = addProcessMemoryDump(gmd3, pRendererC, 31);
|
| + var pmdRendererC3 = addProcessMemoryDump(gmd3, pRendererC, {ts: 31});
|
| pmdRendererC3.vmRegions = VMRegionClassificationNode.fromRegions([
|
| new VMRegion(0x2345, 2048, 0, '/no/matching/category',
|
| - { 'proportionalResident': 200 }),
|
| - new VMRegion(0x2345, 2048, 0, '/dev/ashmem',
|
| - { 'proportionalResident': 500 }),
|
| + {proportionalResident: 200}),
|
| + new VMRegion(0x2345, 2048, 0, '/dev/ashmem', {proportionalResident: 500}),
|
| ]);
|
| - var pmdGpu3 = addProcessMemoryDump(gmd3, pGpu, 30);
|
| + var pmdGpu3 = addProcessMemoryDump(gmd3, pGpu, {ts: 30});
|
| pmdGpu3.memoryAllocatorDumps = (function() {
|
| var gpuDump = newAllocatorDump(pmdGpu3, 'gpu',
|
| - { 'memtrack_pss': 6000 /* ignored */ });
|
| + {numerics: {memtrack_pss: 6000 /* ignored */}});
|
| var memtrackDump = addChildDump(gpuDump, 'android_memtrack',
|
| - { 'memtrack_pss': 5000 /* ignored */ });
|
| - addChildDump(memtrackDump, 'gl', { 'memtrack_pss': 3000 });
|
| - addChildDump(memtrackDump, 'graphics', { 'ignored': 2000 });
|
| - addChildDump(memtrackDump, 'gfx', { 'memtrack_pss': 1000 });
|
| + {numerics: {memtrack_pss: 5000 /* ignored */}});
|
| + addChildDump(memtrackDump, 'gl', {numerics: {memtrack_pss: 3000}});
|
| + addChildDump(memtrackDump, 'graphics', {numerics: {ignored: 2000}});
|
| + addChildDump(memtrackDump, 'gfx', {numerics: {memtrack_pss: 1000}});
|
| return [gpuDump];
|
| })();
|
| pmdGpu3.vmRegions = VMRegionClassificationNode.fromRegions([
|
| new VMRegion(0xCDCD, 4096, 0, '/dev/ashmem/dalvik-zygote space',
|
| - { 'proportionalResident': 150, 'privateDirtyResident': 90 })
|
| + {proportionalResident: 150, privateDirtyResident: 90})
|
| ]);
|
|
|
| // Timestamp 4.
|
| - var gmd4 = addGlobalMemoryDump(model, 40, DETAILED);
|
| - var pmdBrowser4 = addProcessMemoryDump(gmd4, pBrowser, 40);
|
| - var pmdRendererA4 = addProcessMemoryDump(gmd4, pRendererA, 40);
|
| + var gmd4 = addGlobalMemoryDump(model, {ts: 40, levelOfDetail: DETAILED});
|
| + var pmdBrowser4 = addProcessMemoryDump(gmd4, pBrowser, {ts: 40});
|
| + var pmdRendererA4 = addProcessMemoryDump(gmd4, pRendererA, {ts: 40});
|
| pmdRendererA4.memoryAllocatorDumps = [
|
| - newAllocatorDump(pmdRendererA4, 'v8', {
|
| - 'code_and_metadata_size': 21,
|
| - 'bytecode_and_metadata_size': 35
|
| - })
|
| + newAllocatorDump(pmdRendererA4, 'v8', {numerics: {
|
| + code_and_metadata_size: 21,
|
| + bytecode_and_metadata_size: 35
|
| + }})
|
| ];
|
| - }, {
|
| + }, undefined /* opt_options */, {
|
| 'memory:unknown_browser:all_processes:dump_count:detailed': {
|
| value: 3,
|
| unit: unitlessNumber_smallerIsBetter,
|
| @@ -1141,32 +1167,32 @@ tr.b.unittest.testSuite(function() {
|
| var pBrowser = createChromeBrowserProcess(model);
|
|
|
| // Timestamp 1.
|
| - var gmd1 = addGlobalMemoryDump(model, 10, DETAILED);
|
| - var pmdBrowser1 = addProcessMemoryDump(gmd1, pBrowser, 10);
|
| + var gmd1 = addGlobalMemoryDump(model, {ts: 10, levelOfDetail: DETAILED});
|
| + var pmdBrowser1 = addProcessMemoryDump(gmd1, pBrowser, {ts: 10});
|
| pmdBrowser1.vmRegions = VMRegionClassificationNode.fromRegions([
|
| new VMRegion(0xABCD, 128, 0, '/dev/ashmem/dalvik-non moving space',
|
| - { 'privateDirtyResident': 100 })
|
| + {privateDirtyResident: 100})
|
| ]);
|
|
|
| // Timestamp 2 (light global memory dump, so it should be skipped for
|
| // mmaps_* values).
|
| - var gmd2 = addGlobalMemoryDump(model, 20, LIGHT);
|
| - var pmdBrowser2 = addProcessMemoryDump(gmd2, pBrowser, 20);
|
| + var gmd2 = addGlobalMemoryDump(model, {ts: 20, levelOfDetail: LIGHT});
|
| + var pmdBrowser2 = addProcessMemoryDump(gmd2, pBrowser, {ts: 20});
|
| pmdBrowser2.memoryAllocatorDumps = [
|
| - newAllocatorDump(pmdBrowser2, 'malloc', { size: 32 })
|
| + newAllocatorDump(pmdBrowser2, 'malloc', {numerics: {size: 32}})
|
| ];
|
|
|
| // Timestamp 3.
|
| - var gmd3 = addGlobalMemoryDump(model, 30, DETAILED);
|
| - var pmdBrowser3 = addProcessMemoryDump(gmd3, pBrowser, 30);
|
| + var gmd3 = addGlobalMemoryDump(model, {ts: 30, levelOfDetail: DETAILED});
|
| + var pmdBrowser3 = addProcessMemoryDump(gmd3, pBrowser, {ts: 30});
|
| pmdBrowser3.memoryAllocatorDumps = [
|
| - newAllocatorDump(pmdBrowser3, 'malloc', { size: 48 })
|
| + newAllocatorDump(pmdBrowser3, 'malloc', {numerics: {size: 48}})
|
| ];
|
| pmdBrowser3.vmRegions = VMRegionClassificationNode.fromRegions([
|
| new VMRegion(0xABCD, 1024, 0, '/dev/ashmem/dalvik-non moving space',
|
| - { 'privateDirtyResident': 150 })
|
| + {privateDirtyResident: 150})
|
| ]);
|
| - }, {
|
| + }, {} /* opt_options */, {
|
| 'memory:chrome:all_processes:dump_count:detailed': {
|
| value: 2,
|
| unit: unitlessNumber_smallerIsBetter,
|
| @@ -1364,102 +1390,107 @@ tr.b.unittest.testSuite(function() {
|
| var pRenderer2 = createProcessWithName(model, 'Renderer');
|
|
|
| // Timestamp 1 (WebView).
|
| - var gmd1 = addGlobalMemoryDump(model, 0, LIGHT);
|
| - var pmdBrowser1 = addProcessMemoryDump(gmd1, pWebView, 0);
|
| + var gmd1 = addGlobalMemoryDump(model, {ts: 0, levelOfDetail: LIGHT});
|
| + var pmdBrowser1 = addProcessMemoryDump(gmd1, pWebView, {ts: 0});
|
| pmdBrowser1.memoryAllocatorDumps = [
|
| - newAllocatorDump(pmdBrowser1, 'malloc', { size: 2 }),
|
| - newAllocatorDump(pmdBrowser1, 'v8', { size: 4 })
|
| + newAllocatorDump(pmdBrowser1, 'malloc', {numerics: {size: 2}}),
|
| + newAllocatorDump(pmdBrowser1, 'v8', {numerics: {size: 4}})
|
| ];
|
|
|
| // Timestamp 2 (Chrome 1 + Renderer + GPU Process).
|
| - var gmd2 = addGlobalMemoryDump(model, 10, DETAILED);
|
| - var pmdBrowser2 = addProcessMemoryDump(gmd2, pChrome1, 12);
|
| + var gmd2 = addGlobalMemoryDump(model, {ts: 10, levelOfDetail: DETAILED});
|
| + var pmdBrowser2 = addProcessMemoryDump(gmd2, pChrome1, {ts: 12});
|
| pmdBrowser2.vmRegions = VMRegionClassificationNode.fromRegions([
|
| new VMRegion(0xABCD, 9999, 0, '/dev/ashmem/dalvik-non moving space',
|
| - { 'privateDirtyResident': 8 })
|
| + {privateDirtyResident: 8})
|
| ]);
|
| - var pmdGpu2 = addProcessMemoryDump(gmd2, pGpu1, 8);
|
| + var pmdGpu2 = addProcessMemoryDump(gmd2, pGpu1, {ts: 8});
|
| pmdGpu2.vmRegions = VMRegionClassificationNode.fromRegions([
|
| new VMRegion(0xABCD, 9999, 0, '/dev/ashmem/dalvik-non moving space',
|
| - { 'privateDirtyResident': 16 })
|
| + {privateDirtyResident: 16})
|
| ]);
|
| - var pmdRenderer2 = addProcessMemoryDump(gmd2, pRenderer1, 8);
|
| + var pmdRenderer2 = addProcessMemoryDump(gmd2, pRenderer1, {ts: 8});
|
| pmdRenderer2.memoryAllocatorDumps = [
|
| - newAllocatorDump(pmdBrowser2, 'malloc', { size: 32 })
|
| + newAllocatorDump(pmdBrowser2, 'malloc', {numerics: {size: 32}})
|
| ];
|
|
|
| // Timestamp 3 (Chrome 2).
|
| - var gmd3 = addGlobalMemoryDump(model, 20, DETAILED);
|
| - var pmdBrowser3 = addProcessMemoryDump(gmd3, pChrome2, 20);
|
| + var gmd3 = addGlobalMemoryDump(model, {ts: 20, levelOfDetail: DETAILED});
|
| + var pmdBrowser3 = addProcessMemoryDump(gmd3, pChrome2, {ts: 20});
|
| pmdBrowser3.memoryAllocatorDumps = [
|
| - newAllocatorDump(pmdBrowser3, 'malloc', { size: 64 }),
|
| - newAllocatorDump(pmdBrowser3, 'sqlite', { size: 128 }),
|
| - newAllocatorDump(pmdBrowser3, 'discardable', {
|
| + newAllocatorDump(pmdBrowser3, 'malloc', {numerics: {size: 64}}),
|
| + newAllocatorDump(pmdBrowser3, 'sqlite', {numerics: {size: 128}}),
|
| + newAllocatorDump(pmdBrowser3, 'discardable', {numerics: {
|
| size: 8388608,
|
| locked_size: 4194304
|
| - })
|
| + }})
|
| ];
|
| pmdBrowser3.vmRegions = VMRegionClassificationNode.fromRegions([
|
| new VMRegion(0xABCD, 99, 0, '/dev/ashmem/dalvik-non moving space',
|
| - { 'privateDirtyResident': 256 })
|
| + {privateDirtyResident: 256})
|
| ]);
|
|
|
| // Timestamp 4 (Chrome 2 + Renderer).
|
| - var gmd4 = addGlobalMemoryDump(model, 30, LIGHT);
|
| - var pmdBrowser4 = addProcessMemoryDump(gmd4, pChrome2, 28);
|
| + var gmd4 = addGlobalMemoryDump(model, {ts: 30, levelOfDetail: LIGHT});
|
| + var pmdBrowser4 = addProcessMemoryDump(gmd4, pChrome2, {ts: 28});
|
| pmdBrowser4.memoryAllocatorDumps = [
|
| - newAllocatorDump(pmdBrowser4, 'malloc', { size: 512 }),
|
| - newAllocatorDump(pmdBrowser3, 'discardable', { size: 16777216 })
|
| + newAllocatorDump(pmdBrowser4, 'malloc', {numerics: {size: 512}}),
|
| + newAllocatorDump(pmdBrowser3, 'discardable', {numerics: {size: 16777216}})
|
| ];
|
| - var pmdRenderer4 = addProcessMemoryDump(gmd4, pRenderer2, 32);
|
| + var pmdRenderer4 = addProcessMemoryDump(gmd4, pRenderer2, {ts: 32});
|
| pmdRenderer4.memoryAllocatorDumps = [
|
| - newAllocatorDump(pmdRenderer4, 'malloc', { size: 1024 }),
|
| - newAllocatorDump(pmdRenderer4, 'v8', { size: 2048 })
|
| + newAllocatorDump(pmdRenderer4, 'malloc', {numerics: {size: 1024}}),
|
| + newAllocatorDump(pmdRenderer4, 'v8', {numerics: {size: 2048}})
|
| ];
|
|
|
| // Timestamp 5 (Unknown browser).
|
| - var gmd5 = addGlobalMemoryDump(model, 40, LIGHT);
|
| - var pmdBrowser5 = addProcessMemoryDump(gmd5, pUnknownBrowser, 40);
|
| + var gmd5 = addGlobalMemoryDump(model, {ts: 40, levelOfDetail: LIGHT});
|
| + var pmdBrowser5 = addProcessMemoryDump(gmd5, pUnknownBrowser, {ts: 40});
|
| pmdBrowser5.memoryAllocatorDumps = [
|
| - newAllocatorDump(pmdBrowser5, 'malloc', { size: 4096 }),
|
| - newAllocatorDump(pmdBrowser5, 'sqlite', { size: 8192 }),
|
| + newAllocatorDump(pmdBrowser5, 'malloc', {numerics: {size: 4096}}),
|
| + newAllocatorDump(pmdBrowser5, 'sqlite', {numerics: {size: 8192}}),
|
| ];
|
|
|
| // Timestamp 6 (WebView).
|
| - var gmd6 = addGlobalMemoryDump(model, 50, DETAILED);
|
| - var pmdBrowser6 = addProcessMemoryDump(gmd6, pWebView, 50);
|
| - pmdBrowser6.memoryAllocatorDumps = [
|
| - newAllocatorDump(pmdBrowser6, 'malloc', { size: 16384 }),
|
| - newAllocatorDump(pmdBrowser6, 'v8', {
|
| - 'allocated_objects_size': 32768,
|
| - 'code_and_metadata_size': 33554432,
|
| - 'size': 67108864
|
| - })
|
| - ];
|
| + var gmd6 = addGlobalMemoryDump(model, {ts: 50, levelOfDetail: DETAILED});
|
| + var pmdBrowser6 = addProcessMemoryDump(gmd6, pWebView, {ts: 50});
|
| + pmdBrowser6.memoryAllocatorDumps = (function() {
|
| + var mallocDump = newAllocatorDump(pmdBrowser6, 'malloc',
|
| + {numerics: {size: 16384}});
|
| + var v8Dump = newAllocatorDump(pmdBrowser6, 'v8', {numerics: {
|
| + allocated_objects_size: 32768,
|
| + code_and_metadata_size: 33554432,
|
| + size: 67108864
|
| + }});
|
| + var isolateDump = addChildDump(v8Dump, 'isolate');
|
| + addChildDump(isolateDump, 'malloc', {numerics: {size: 1 }});
|
| + return [mallocDump, v8Dump];
|
| + })();
|
| pmdBrowser6.vmRegions = VMRegionClassificationNode.fromRegions([
|
| new VMRegion(0xABCD, 99999, 0, '/dev/ashmem/dalvik-non moving space',
|
| - { 'privateDirtyResident': 65536 })
|
| + {privateDirtyResident: 65536})
|
| ]);
|
|
|
| // Timestamp 7 (Chrome 1 + GPU Process).
|
| - var gmd7 = addGlobalMemoryDump(model, 60, DETAILED);
|
| - var pmdBrowser7 = addProcessMemoryDump(gmd7, pChrome1, 63);
|
| + var gmd7 = addGlobalMemoryDump(model, {ts: 60, levelOfDetail: DETAILED});
|
| + var pmdBrowser7 = addProcessMemoryDump(gmd7, pChrome1, {ts: 63});
|
| pmdBrowser7.memoryAllocatorDumps = [
|
| - newAllocatorDump(pmdBrowser4, 'malloc', { size: 131072 }),
|
| - newAllocatorDump(pmdBrowser4, 'sqlite', { size: 262144 })
|
| + newAllocatorDump(pmdBrowser4, 'malloc', {numerics: {size: 131072}}),
|
| + newAllocatorDump(pmdBrowser4, 'sqlite', {numerics: {size: 262144}})
|
| ];
|
| pmdBrowser7.vmRegions = VMRegionClassificationNode.fromRegions([
|
| new VMRegion(0xABCD, 999999, 0, '/dev/ashmem/dalvik-non moving space',
|
| - { 'privateDirtyResident': 524288 })
|
| + {privateDirtyResident: 524288})
|
| ]);
|
| - var pmdGpu7 = addProcessMemoryDump(gmd7, pGpu1, 57);
|
| + var pmdGpu7 = addProcessMemoryDump(gmd7, pGpu1, {ts: 57});
|
| pmdGpu7.memoryAllocatorDumps = (function() {
|
| - var gpuDump = newAllocatorDump(pmdGpu7, 'gpu', { 'size': 1048576 });
|
| + var gpuDump = newAllocatorDump(pmdGpu7, 'gpu',
|
| + {numerics: {size: 1048576}});
|
| var memtrackDump = addChildDump(gpuDump, 'android_memtrack');
|
| - addChildDump(memtrackDump, 'gl', { 'memtrack_pss': 2097152 });
|
| + addChildDump(memtrackDump, 'gl', {numerics: {memtrack_pss: 2097152}});
|
| return [gpuDump];
|
| })();
|
| - }, {
|
| + }, undefined /* opt_options */, {
|
| // WebView (GMD1, GMD6).
|
| 'memory:webview:all_processes:dump_count:detailed': {
|
| value: 1,
|
| @@ -1507,6 +1538,13 @@ tr.b.unittest.testSuite(function() {
|
| unit: sizeInBytes_smallerIsBetter,
|
| description: 'effective size of malloc in all processes in WebView'
|
| },
|
| + 'memory:webview:all_processes:reported_by_chrome:v8:allocated_by_malloc:effective_size':
|
| + {
|
| + value: [0, 1],
|
| + unit: sizeInBytes_smallerIsBetter,
|
| + description: 'effective size of objects allocated by malloc for v8 ' +
|
| + 'in all processes in WebView'
|
| + },
|
| 'memory:webview:all_processes:reported_by_chrome:v8:effective_size': {
|
| value: [4, 67108864],
|
| unit: sizeInBytes_smallerIsBetter,
|
| @@ -1624,6 +1662,13 @@ tr.b.unittest.testSuite(function() {
|
| unit: sizeInBytes_smallerIsBetter,
|
| description: 'effective size of malloc in the browser process in WebView'
|
| },
|
| + 'memory:webview:browser_process:reported_by_chrome:v8:allocated_by_malloc:effective_size':
|
| + {
|
| + value: [0, 1],
|
| + unit: sizeInBytes_smallerIsBetter,
|
| + description: 'effective size of objects allocated by malloc for v8 ' +
|
| + 'in the browser process in WebView'
|
| + },
|
| 'memory:webview:browser_process:reported_by_chrome:v8:effective_size': {
|
| value: [4, 67108864],
|
| unit: sizeInBytes_smallerIsBetter,
|
| @@ -2454,14 +2499,266 @@ tr.b.unittest.testSuite(function() {
|
| }
|
| });
|
|
|
| + memoryMetricTest('rangeOfInterest', function(model) {
|
| + var pChrome = createChromeBrowserProcess(model);
|
| + var pWebView = createWebViewProcess(model);
|
| +
|
| + // Chrome: only the LIGHT dumps should be kept.
|
| + addProcessMemoryDump(addGlobalMemoryDump(
|
| + model, {ts: 5, duration: 4, levelOfDetail: DETAILED}), pChrome);
|
| + addProcessMemoryDump(addGlobalMemoryDump(
|
| + model, {ts: 10, duration: 2, levelOfDetail: LIGHT}), pChrome);
|
| + addProcessMemoryDump(addGlobalMemoryDump(
|
| + model, {ts: 13, duration: 3, levelOfDetail: LIGHT}), pChrome);
|
| + addProcessMemoryDump(addGlobalMemoryDump(
|
| + model, {ts: 20, duration: 1, levelOfDetail: LIGHT}), pChrome);
|
| + addProcessMemoryDump(addGlobalMemoryDump(
|
| + model, {ts: 22, duration: 5, levelOfDetail: DETAILED}), pChrome);
|
| +
|
| + // WebView: only the DETAILED dumps should be kept.
|
| + addProcessMemoryDump(addGlobalMemoryDump(
|
| + model, {ts: 4, duration: 1, levelOfDetail: LIGHT}), pWebView);
|
| + addProcessMemoryDump(addGlobalMemoryDump(
|
| + model, {ts: 5, duration: 5, levelOfDetail: DETAILED}), pWebView);
|
| + addProcessMemoryDump(addGlobalMemoryDump(
|
| + model, {ts: 10, duration: 0, levelOfDetail: DETAILED}), pWebView);
|
| + addProcessMemoryDump(addGlobalMemoryDump(
|
| + model, {ts: 11, duration: 7, levelOfDetail: DETAILED}), pWebView);
|
| + addProcessMemoryDump(addGlobalMemoryDump(
|
| + model, {ts: 19, duration: 2, levelOfDetail: DETAILED}), pWebView);
|
| + addProcessMemoryDump(addGlobalMemoryDump(
|
| + model, {ts: 21, duration: 5, levelOfDetail: LIGHT}), pWebView);
|
| +
|
| + // Unknown browser: only the LIGHT dump should be kept.
|
| + addGlobalMemoryDump(model, {ts: 5, duration: 3, levelOfDetail: DETAILED});
|
| + addGlobalMemoryDump(model, {ts: 9, duration: 12, levelOfDetail: LIGHT});
|
| + addGlobalMemoryDump(model, {ts: 22, duration: 3, levelOfDetail: DETAILED});
|
| + }, { /* opt_options */
|
| + rangeOfInterest: tr.b.Range.fromExplicitRange(10, 20)
|
| + }, {
|
| + 'memory:chrome:all_processes:dump_count': {
|
| + value: 3,
|
| + unit: unitlessNumber_smallerIsBetter,
|
| + description: 'total number of all memory dumps added by Chrome to the ' +
|
| + 'trace'
|
| + },
|
| + 'memory:chrome:all_processes:dump_count:detailed': {
|
| + value: 0,
|
| + unit: unitlessNumber_smallerIsBetter,
|
| + description: 'total number of detailed memory dumps added by Chrome to ' +
|
| + 'the trace'
|
| + },
|
| + 'memory:chrome:all_processes:dump_count:light': {
|
| + value: 3,
|
| + unit: unitlessNumber_smallerIsBetter,
|
| + description: 'total number of light memory dumps added by Chrome to ' +
|
| + 'the trace'
|
| + },
|
| + 'memory:chrome:all_processes:process_count': {
|
| + value: [1, 1, 1],
|
| + unit: unitlessNumber_smallerIsBetter,
|
| + description: 'total number of all processes in Chrome'
|
| + },
|
| + 'memory:chrome:browser_process:process_count': {
|
| + value: [1, 1, 1],
|
| + unit: unitlessNumber_smallerIsBetter,
|
| + description: 'total number of browser processes in Chrome'
|
| + },
|
| +
|
| + 'memory:webview:all_processes:dump_count': {
|
| + value: 4,
|
| + unit: unitlessNumber_smallerIsBetter,
|
| + description: 'total number of all memory dumps added by WebView to the ' +
|
| + 'trace'
|
| + },
|
| + 'memory:webview:all_processes:dump_count:detailed': {
|
| + value: 4,
|
| + unit: unitlessNumber_smallerIsBetter,
|
| + description: 'total number of detailed memory dumps added by WebView ' +
|
| + 'to the trace'
|
| + },
|
| + 'memory:webview:all_processes:dump_count:light': {
|
| + value: 0,
|
| + unit: unitlessNumber_smallerIsBetter,
|
| + description: 'total number of light memory dumps added by WebView to ' +
|
| + 'the trace'
|
| + },
|
| + 'memory:webview:all_processes:process_count': {
|
| + value: [1, 1, 1, 1],
|
| + unit: unitlessNumber_smallerIsBetter,
|
| + description: 'total number of all processes in WebView'
|
| + },
|
| + 'memory:webview:all_processes:reported_by_os:private_dirty_size': {
|
| + value: [0, 0, 0, 0],
|
| + unit: sizeInBytes_smallerIsBetter,
|
| + description: 'total private dirty size reported by the OS for all ' +
|
| + 'processes in WebView'
|
| + },
|
| + 'memory:webview:all_processes:reported_by_os:proportional_resident_size': {
|
| + value: [0, 0, 0, 0],
|
| + unit: sizeInBytes_smallerIsBetter,
|
| + description: 'total proportional resident size (PSS) reported by the ' +
|
| + 'OS for all processes in WebView'
|
| + },
|
| + 'memory:webview:all_processes:reported_by_os:system_memory:ashmem:private_dirty_size':
|
| + {
|
| + value: [0, 0, 0, 0],
|
| + unit: sizeInBytes_smallerIsBetter,
|
| + description: 'private dirty size of ashmem in all processes in ' +
|
| + 'WebView'
|
| + },
|
| + 'memory:webview:all_processes:reported_by_os:system_memory:ashmem:proportional_resident_size':
|
| + {
|
| + value: [0, 0, 0, 0],
|
| + unit: sizeInBytes_smallerIsBetter,
|
| + description: 'proportional resident size (PSS) of ashmem in all ' +
|
| + 'processes in WebView'
|
| + },
|
| + 'memory:webview:all_processes:reported_by_os:system_memory:java_heap:private_dirty_size':
|
| + {
|
| + value: [0, 0, 0, 0],
|
| + unit: sizeInBytes_smallerIsBetter,
|
| + description: 'private dirty size of the Java heap in all processes ' +
|
| + 'in WebView'
|
| + },
|
| + 'memory:webview:all_processes:reported_by_os:system_memory:java_heap:proportional_resident_size':
|
| + {
|
| + value: [0, 0, 0, 0],
|
| + unit: sizeInBytes_smallerIsBetter,
|
| + description: 'proportional resident size (PSS) of the Java heap in ' +
|
| + 'all processes in WebView'
|
| + },
|
| + 'memory:webview:all_processes:reported_by_os:system_memory:native_heap:private_dirty_size':
|
| + {
|
| + value: [0, 0, 0, 0],
|
| + unit: sizeInBytes_smallerIsBetter,
|
| + description: 'private dirty size of the native heap in all ' +
|
| + 'processes in WebView'
|
| + },
|
| + 'memory:webview:all_processes:reported_by_os:system_memory:native_heap:proportional_resident_size':
|
| + {
|
| + value: [0, 0, 0, 0],
|
| + unit: sizeInBytes_smallerIsBetter,
|
| + description: 'proportional resident size (PSS) of the native heap ' +
|
| + 'in all processes in WebView'
|
| + },
|
| + 'memory:webview:all_processes:reported_by_os:system_memory:private_dirty_size':
|
| + {
|
| + value: [0, 0, 0, 0],
|
| + unit: sizeInBytes_smallerIsBetter,
|
| + description: 'total private dirty size of system memory (RAM) used ' +
|
| + 'by all processes in WebView'
|
| + },
|
| + 'memory:webview:all_processes:reported_by_os:system_memory:proportional_resident_size':
|
| + {
|
| + value: [0, 0, 0, 0],
|
| + unit: sizeInBytes_smallerIsBetter,
|
| + description: 'total proportional resident size (PSS) of system ' +
|
| + 'memory (RAM) used by all processes in WebView'
|
| + },
|
| + 'memory:webview:browser_process:process_count': {
|
| + value: [1, 1, 1, 1],
|
| + unit: unitlessNumber_smallerIsBetter,
|
| + description: 'total number of browser processes in WebView'
|
| + },
|
| + 'memory:webview:browser_process:reported_by_os:private_dirty_size': {
|
| + value: [0, 0, 0, 0],
|
| + unit: sizeInBytes_smallerIsBetter,
|
| + description: 'total private dirty size reported by the OS for the ' +
|
| + 'browser process in WebView'
|
| + },
|
| + 'memory:webview:browser_process:reported_by_os:proportional_resident_size':
|
| + {
|
| + value: [0, 0, 0, 0],
|
| + unit: sizeInBytes_smallerIsBetter,
|
| + description: 'total proportional resident size (PSS) reported by ' +
|
| + 'the OS for the browser process in WebView'
|
| + },
|
| + 'memory:webview:browser_process:reported_by_os:system_memory:ashmem:private_dirty_size':
|
| + {
|
| + value: [0, 0, 0, 0],
|
| + unit: sizeInBytes_smallerIsBetter,
|
| + description: 'private dirty size of ashmem in the browser process ' +
|
| + 'in WebView'
|
| + },
|
| + 'memory:webview:browser_process:reported_by_os:system_memory:ashmem:proportional_resident_size':
|
| + {
|
| + value: [0, 0, 0, 0],
|
| + unit: sizeInBytes_smallerIsBetter,
|
| + description: 'proportional resident size (PSS) of ashmem in the ' +
|
| + 'browser process in WebView'
|
| + },
|
| + 'memory:webview:browser_process:reported_by_os:system_memory:java_heap:private_dirty_size':
|
| + {
|
| + value: [0, 0, 0, 0],
|
| + unit: sizeInBytes_smallerIsBetter,
|
| + description: 'private dirty size of the Java heap in the browser ' +
|
| + 'process in WebView'
|
| + },
|
| + 'memory:webview:browser_process:reported_by_os:system_memory:java_heap:proportional_resident_size':
|
| + {
|
| + value: [0, 0, 0, 0],
|
| + unit: sizeInBytes_smallerIsBetter,
|
| + description: 'proportional resident size (PSS) of the Java heap in ' +
|
| + 'the browser process in WebView'
|
| + },
|
| + 'memory:webview:browser_process:reported_by_os:system_memory:native_heap:private_dirty_size':
|
| + {
|
| + value: [0, 0, 0, 0],
|
| + unit: sizeInBytes_smallerIsBetter,
|
| + description: 'private dirty size of the native heap in the browser ' +
|
| + 'process in WebView'
|
| + },
|
| + 'memory:webview:browser_process:reported_by_os:system_memory:native_heap:proportional_resident_size':
|
| + {
|
| + value: [0, 0, 0, 0],
|
| + unit: sizeInBytes_smallerIsBetter,
|
| + description: 'proportional resident size (PSS) of the native heap ' +
|
| + 'in the browser process in WebView'
|
| + },
|
| + 'memory:webview:browser_process:reported_by_os:system_memory:private_dirty_size':
|
| + {
|
| + value: [0, 0, 0, 0],
|
| + unit: sizeInBytes_smallerIsBetter,
|
| + description: 'total private dirty size of system memory (RAM) used ' +
|
| + 'by the browser process in WebView'
|
| + },
|
| + 'memory:webview:browser_process:reported_by_os:system_memory:proportional_resident_size':
|
| + {
|
| + value: [0, 0, 0, 0],
|
| + unit: sizeInBytes_smallerIsBetter,
|
| + description: 'total proportional resident size (PSS) of system ' +
|
| + 'memory (RAM) used by the browser process in WebView'
|
| + },
|
| +
|
| + 'memory:unknown_browser:all_processes:dump_count': {
|
| + value: 1,
|
| + unit: unitlessNumber_smallerIsBetter,
|
| + description: 'total number of all memory dumps added by an unknown ' +
|
| + 'browser to the trace'
|
| + },
|
| + 'memory:unknown_browser:all_processes:dump_count:detailed': {
|
| + value: 0,
|
| + unit: unitlessNumber_smallerIsBetter,
|
| + description: 'total number of detailed memory dumps added by an ' +
|
| + 'unknown browser to the trace'
|
| + },
|
| + 'memory:unknown_browser:all_processes:dump_count:light': {
|
| + value: 1,
|
| + unit: unitlessNumber_smallerIsBetter,
|
| + description: 'total number of light memory dumps added by an unknown ' +
|
| + 'browser to the trace'
|
| + }
|
| + });
|
| +
|
| test('dumpIdBrowserClashThrows', function() {
|
| var model = tr.c.TestUtils.newModel(function(model) {
|
| var pWebView = createWebViewProcess(model);
|
| var pChrome = createChromeBrowserProcess(model);
|
|
|
| - var gmd = addGlobalMemoryDump(model, 10);
|
| - addProcessMemoryDump(gmd, pWebView, 9);
|
| - addProcessMemoryDump(gmd, pChrome, 11);
|
| + var gmd = addGlobalMemoryDump(model, {ts: 10});
|
| + addProcessMemoryDump(gmd, pWebView, {ts: 9});
|
| + addProcessMemoryDump(gmd, pChrome, {ts: 11});
|
| });
|
| var values = new tr.v.ValueSet();
|
|
|
|
|