Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(413)

Unified Diff: tracing/tracing/metrics/system_health/memory_metric.html

Issue 3009553002: Refactor Histogram relationship diagnostics. (Closed)
Patch Set: Created 3 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 3000abbdb5770d4121e7961319805438368ce6cf..ee7eda13e0b7c2f5d05b1aa1fdba571de5a119c1 100644
--- a/tracing/tracing/metrics/system_health/memory_metric.html
+++ b/tracing/tracing/metrics/system_health/memory_metric.html
@@ -1089,7 +1089,7 @@ tr.exportTo('tr.metrics.sh', function() {
* (corresponding to global memory dumps associated with the given browser)
* |values| for each process (e.g. 'gpu_process', 'browser_process', etc).
* We also report a special 'all_processes' histogram which agregates all
- * others, this has a RelatedHistogramBreakdown diagnostic explaining
+ * others, this has a RelatedNameMap diagnostic explaining
* how it is built from the other histograms.
*
* See addMemoryDumpValues for more details.
@@ -1121,32 +1121,30 @@ tr.exportTo('tr.metrics.sh', function() {
}
cachedHistograms.set(histogram.name, histogram);
- const processBreakdown = new tr.v.d.RelatedHistogramBreakdown();
- processBreakdown.colorScheme =
- tr.e.chrome.chrome_processes.PROCESS_COLOR_SCHEME_NAME;
+ const processNames = new tr.v.d.RelatedNameMap();
for (const [childProcessName, childProcessNode] of tree.children[0]) {
processPath.push(childProcessName);
const childProcessHistogram =
recurse(processPath, componentPath, childProcessNode);
- processBreakdown.set(childProcessName, childProcessHistogram);
+ processNames.set(childProcessName, childProcessHistogram.name);
processPath.pop();
}
- const componentBreakdown = new tr.v.d.RelatedHistogramBreakdown();
+ const componentNames = new tr.v.d.RelatedNameMap();
for (const [childComponentName, childComponentNode] of tree.children[1]) {
componentPath.push(childComponentName);
const childComponentHistogram =
recurse(processPath, componentPath, childComponentNode);
- componentBreakdown.set(childComponentName, childComponentHistogram);
+ componentNames.set(childComponentName, childComponentHistogram.name);
componentPath.pop();
}
values.addHistogram(histogram);
if (tree.children[0].size > 0) {
- histogram.diagnostics.set('processes', processBreakdown);
+ histogram.diagnostics.set('processes', processNames);
}
if (tree.children[1].size > 0) {
- histogram.diagnostics.set('components', componentBreakdown);
+ histogram.diagnostics.set('components', componentNames);
}
return histogram;
@@ -1198,6 +1196,33 @@ tr.exportTo('tr.metrics.sh', function() {
return numeric;
}
+ function buildSampleDiagnostics(value, node) {
+ if (node.children.length < 2) return undefined;
+ const diagnostics = new Map();
+ const i = node.values.indexOf(value);
+
+ const processBreakdown = new tr.v.d.Breakdown();
+ processBreakdown.colorScheme =
+ tr.e.chrome.chrome_processes.PROCESS_COLOR_SCHEME_NAME;
+ for (const [name, subNode] of node.children[0]) {
+ processBreakdown.set(name, subNode.values[i].total);
+ }
+ if (processBreakdown.size > 0) {
+ diagnostics.set('processes', processBreakdown);
+ }
+
+ const componentBreakdown = new tr.v.d.Breakdown();
+ for (const [name, subNode] of node.children[1]) {
+ componentBreakdown.set(name, subNode.values[i].total);
+ }
+ if (componentBreakdown.size > 0) {
+ diagnostics.set('components', componentBreakdown);
+ }
+
+ if (diagnostics.size === 0) return undefined;
+ return diagnostics;
+ }
+
/**
* Create a memory tr.v.Histogram with |unit| and add all total values in
* |node| to it.
@@ -1205,7 +1230,10 @@ tr.exportTo('tr.metrics.sh', function() {
function buildMemoryNumericFromNode(name, node, unit) {
const histogram = new tr.v.Histogram(
name, unit, BOUNDARIES_FOR_UNIT_MAP.get(unit));
- node.values.forEach(v => histogram.addSample(v.total));
+
+ node.values.forEach(v => histogram.addSample(
+ v.total, buildSampleDiagnostics(v, node)));
+
return histogram;
}

Powered by Google App Engine
This is Rietveld 408576698