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

Unified Diff: Source/devtools/front_end/timeline/TimelineModel.js

Issue 1311783008: Merge 201072 "DevTools: [timeline tree view] fix total time calc..." (Closed) Base URL: svn://svn.chromium.org/blink/branches/chromium/2490/
Patch Set: Created 5 years, 4 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
« no previous file with comments | « LayoutTests/inspector/tracing/timeline-js-callstacks-expected.txt ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/devtools/front_end/timeline/TimelineModel.js
===================================================================
--- Source/devtools/front_end/timeline/TimelineModel.js (revision 201157)
+++ Source/devtools/front_end/timeline/TimelineModel.js (working copy)
@@ -1552,7 +1552,8 @@
buRoot.name = WebInspector.UIString("Bottom-Up Chart");
/** @type {!Map<string,!WebInspector.TimelineModel.ProfileTreeNode>} */
buRoot.children = new Map();
- processNode(topDownTree);
+ var nodesOnStack = /** @type {!Set<string>} */ (new Set());
+ topDownTree.children.forEach(processNode);
/**
* @param {!WebInspector.TimelineModel.ProfileTreeNode} tdNode
@@ -1559,12 +1560,15 @@
*/
function processNode(tdNode)
{
- if (tdNode.selfTime > 0) {
- var buParent = groupingCallback && groupingCallback(tdNode) || buRoot;
- appendNode(tdNode, buParent);
- }
+ var buParent = groupingCallback && groupingCallback(tdNode) || buRoot;
+ appendNode(tdNode, buParent);
+ var hadNode = nodesOnStack.has(tdNode.id);
+ if (!hadNode)
+ nodesOnStack.add(tdNode.id);
if (tdNode.children)
tdNode.children.forEach(processNode);
+ if (!hadNode)
+ nodesOnStack.delete(tdNode.id);
}
/**
@@ -1592,7 +1596,8 @@
buParent.children.set(id, buNode);
} else {
buNode.selfTime += selfTime;
- buNode.totalTime += totalTime;
+ if (!nodesOnStack.has(id))
+ buNode.totalTime += totalTime;
}
tdNode = tdNode.parent;
buParent = buNode;
@@ -1599,6 +1604,13 @@
}
}
+ // Purge zero self time nodes.
+ var rootChildren = buRoot.children;
+ for (var item of rootChildren.entries()) {
+ if (item[1].selfTime === 0)
+ rootChildren.delete(item[0]);
+ }
+
return buRoot;
}
« no previous file with comments | « LayoutTests/inspector/tracing/timeline-js-callstacks-expected.txt ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698