| Index: tracing/tracing/metrics/system_health/memory_metric.html
|
| diff --git a/tracing/tracing/metrics/system_health/memory_metric.html b/tracing/tracing/metrics/system_health/memory_metric.html
|
| index 80a4c177f4230a6a848fd43dc402dd4b098c7084..ef6cbe9ff4d54cfb52913a99e47286379b5f375d 100644
|
| --- a/tracing/tracing/metrics/system_health/memory_metric.html
|
| +++ b/tracing/tracing/metrics/system_health/memory_metric.html
|
| @@ -20,8 +20,6 @@ found in the LICENSE file.
|
|
|
| tr.exportTo('tr.metrics.sh', function() {
|
|
|
| - var DISPLAYED_SIZE_NUMERIC_NAME =
|
| - tr.model.MemoryAllocatorDump.DISPLAYED_SIZE_NUMERIC_NAME;
|
| var LIGHT = tr.model.ContainerMemoryDump.LevelOfDetail.LIGHT;
|
| var DETAILED = tr.model.ContainerMemoryDump.LevelOfDetail.DETAILED;
|
| var ScalarNumeric = tr.v.ScalarNumeric;
|
| @@ -30,7 +28,7 @@ tr.exportTo('tr.metrics.sh', function() {
|
| var unitlessNumber_smallerIsBetter =
|
| tr.v.Unit.byName.unitlessNumber_smallerIsBetter;
|
|
|
| - var MMAPS_METRICS = {
|
| + var MMAPS_VALUES = {
|
| 'overall:pss': {
|
| path: [],
|
| byteStat: 'proportionalResident'
|
| @@ -53,6 +51,11 @@ tr.exportTo('tr.metrics.sh', function() {
|
| }
|
| };
|
|
|
| + var SUBSYSTEM_VALUES = [
|
| + tr.model.MemoryAllocatorDump.DISPLAYED_SIZE_NUMERIC_NAME,
|
| + 'allocated_objects_size'
|
| + ];
|
| +
|
| var ALL_PROCESS_NAMES = 'all';
|
|
|
| var LEVEL_OF_DETAIL_NAMES = new Map();
|
| @@ -177,11 +180,11 @@ tr.exportTo('tr.metrics.sh', function() {
|
| *
|
| * * ALLOCATOR STATISTICS
|
| * memory:{chrome, webview}:{browser, renderer, ..., all}:subsystem:
|
| - * {v8, malloc, ...}
|
| + * {v8, malloc, ...}:{effective_size, allocated_objects_size}
|
| + * memory:{chrome, webview}:{browser, renderer, ..., all}:subsystem:
|
| + * gpu:android_memtrack:{gl, ...}:memtrack_pss
|
| * memory:{chrome, webview}:{browser, renderer, ..., all}:subsystem:
|
| - * {v8, malloc, ...}:allocated_objects
|
| - * memory:{chrome, webview}:{browser, renderer, ..., all}:
|
| - * android_memtrack:{gl, ...}
|
| + * discardable:locked_size
|
| * type: tr.v.Numeric (histogram over all matching global memory dumps)
|
| * unit: sizeInBytes_smallerIsBetter
|
| */
|
| @@ -198,30 +201,44 @@ tr.exportTo('tr.metrics.sh', function() {
|
| if (processDump.memoryAllocatorDumps === undefined)
|
| return;
|
|
|
| - // Add memory:<browser-name>:<process-name>:subsystem:<name> and
|
| - // memory:<browser-name>:<process-name>:subsystem:<name>:
|
| - // allocated_objects values for each root memory allocator dump.
|
| processDump.memoryAllocatorDumps.forEach(function(rootAllocatorDump) {
|
| - addProcessScalar(
|
| - 'subsystem:' + rootAllocatorDump.name,
|
| - rootAllocatorDump.numerics[DISPLAYED_SIZE_NUMERIC_NAME]);
|
| - addProcessScalar(
|
| - 'subsystem:' + rootAllocatorDump.name + ':allocated_objects',
|
| - rootAllocatorDump.numerics['allocated_objects_size']);
|
| - });
|
| + var subsystemPrefix = 'subsystem:' + rootAllocatorDump.name;
|
|
|
| - // Add memory:<browser-name>:<process-name>:android_memtrack:<name>
|
| - // value for each child of the gpu/android_memtrack memory allocator
|
| - // dump.
|
| - var memtrackDump = processDump.getMemoryAllocatorDumpByFullName(
|
| - 'gpu/android_memtrack');
|
| - if (memtrackDump !== undefined) {
|
| - memtrackDump.children.forEach(function(memtrackChildDump) {
|
| + // Add generic values for each root memory allocator dump
|
| + // (memory:<browser-name>:<process-name>:subsystem:<name>:
|
| + // {effective_size, allocated_objects_size}).
|
| + SUBSYSTEM_VALUES.forEach(function(valueName) {
|
| addProcessScalar(
|
| - 'android_memtrack:' + memtrackChildDump.name,
|
| - memtrackChildDump.numerics['memtrack_pss']);
|
| + subsystemPrefix + ':' + valueName,
|
| + rootAllocatorDump.numerics[valueName]);
|
| });
|
| - }
|
| +
|
| + // Add subsystem-specific values.
|
| + switch (rootAllocatorDump.name) {
|
| + // memory:<browser-name>:<process-name>:subsystem:gpu:
|
| + // android_memtrack:<component-name>:memtrack_pss.
|
| + case 'gpu':
|
| + var memtrackDump =
|
| + rootAllocatorDump.getDescendantDumpByFullName(
|
| + 'android_memtrack');
|
| + if (memtrackDump !== undefined) {
|
| + memtrackDump.children.forEach(function(memtrackChildDump) {
|
| + addProcessScalar(
|
| + subsystemPrefix + ':android_memtrack:' +
|
| + memtrackChildDump.name + ':memtrack_pss',
|
| + memtrackChildDump.numerics['memtrack_pss']);
|
| + });
|
| + }
|
| + break;
|
| + // memory:<browser-name>:<process-name>:subsystem:discardable:
|
| + // locked_size.
|
| + case 'discardable':
|
| + addProcessScalar(
|
| + subsystemPrefix + ':locked_size',
|
| + rootAllocatorDump.numerics['locked_size']);
|
| + break;
|
| + }
|
| + });
|
| }, valueList, model);
|
| }
|
|
|
| @@ -245,12 +262,12 @@ tr.exportTo('tr.metrics.sh', function() {
|
| function(processDump, addProcessScalar) {
|
| // Add memory:<browser-name>:<process-name>:vmstats:<name> value for
|
| // each mmap metric.
|
| - tr.b.iterItems(MMAPS_METRICS, function(metricName, metricSpec) {
|
| + tr.b.iterItems(MMAPS_VALUES, function(valueName, valueSpec) {
|
| var node = getDescendantVmRegionClassificationNode(
|
| - processDump.vmRegions, metricSpec.path);
|
| - var value = node ? (node.byteStats[metricSpec.byteStat] || 0) : 0;
|
| + processDump.vmRegions, valueSpec.path);
|
| + var value = node ? (node.byteStats[valueSpec.byteStat] || 0) : 0;
|
| addProcessScalar(
|
| - 'vmstats:' + metricName,
|
| + 'vmstats:' + valueName,
|
| new ScalarNumeric(sizeInBytes_smallerIsBetter, value));
|
| });
|
| }, valueList, model);
|
|
|