Index: Source/devtools/front_end/AllocationProfile.js |
diff --git a/Source/devtools/front_end/AllocationProfile.js b/Source/devtools/front_end/AllocationProfile.js |
index e692217aad7a32c640490d6a4e520d0b4bdda131..bbba6e6d90ce3974a8eef9252d8cf701540cff3e 100644 |
--- a/Source/devtools/front_end/AllocationProfile.js |
+++ b/Source/devtools/front_end/AllocationProfile.js |
@@ -43,12 +43,12 @@ WebInspector.AllocationProfile = function(profile, liveObjectStats) |
this._traceTops = null; |
- this._buildAllocationFunctionInfos(profile); |
- this._traceTree = this._buildInvertedAllocationTree(profile, liveObjectStats); |
+ this._buildFunctionAllocationInfos(profile); |
+ this._traceTree = this._buildAllocationTree(profile, liveObjectStats); |
} |
WebInspector.AllocationProfile.prototype = { |
- _buildAllocationFunctionInfos: function(profile) |
+ _buildFunctionAllocationInfos: function(profile) |
{ |
var strings = this._strings; |
@@ -75,7 +75,7 @@ WebInspector.AllocationProfile.prototype = { |
} |
}, |
- _buildInvertedAllocationTree: function(profile, liveObjectStats) |
+ _buildAllocationTree: function(profile, liveObjectStats) |
{ |
var traceTreeRaw = profile.trace_tree; |
var functionInfos = this._functionInfos; |
@@ -95,7 +95,7 @@ WebInspector.AllocationProfile.prototype = { |
var stats = liveObjectStats[id]; |
var liveCount = stats ? stats.count : 0; |
var liveSize = stats ? stats.size : 0; |
- var result = new WebInspector.AllocationTraceNode( |
+ var result = new WebInspector.TopDownAllocationNode( |
id, |
functionInfo, |
rawNodeArray[nodeOffset + allocationCountOffset], |
@@ -154,7 +154,7 @@ WebInspector.AllocationProfile.prototype = { |
var node = this._idToNode[nodeId]; |
if (!node) { |
var functionInfo = this._collapsedTopNodeIdToFunctionInfo[nodeId]; |
- node = functionInfo.tracesWithThisTop(); |
+ node = functionInfo.bottomUpRoot(); |
delete this._collapsedTopNodeIdToFunctionInfo[nodeId]; |
this._idToNode[nodeId] = node; |
} |
@@ -217,8 +217,15 @@ WebInspector.AllocationProfile.prototype = { |
/** |
* @constructor |
+ * @param {number} id |
+ * @param {!WebInspector.FunctionAllocationInfo} functionInfo |
+ * @param {number} count |
+ * @param {number} size |
+ * @param {number} liveCount |
+ * @param {number} liveSize |
+ * @param {?WebInspector.TopDownAllocationNode} parent |
*/ |
-WebInspector.AllocationTraceNode = function(id, functionInfo, count, size, liveCount, liveSize, parent) |
+WebInspector.TopDownAllocationNode = function(id, functionInfo, count, size, liveCount, liveSize, parent) |
{ |
this.id = id; |
this.functionInfo = functionInfo; |
@@ -235,7 +242,7 @@ WebInspector.AllocationTraceNode = function(id, functionInfo, count, size, liveC |
* @constructor |
* @param {!WebInspector.FunctionAllocationInfo} functionInfo |
*/ |
-WebInspector.AllocationBackTraceNode = function(functionInfo) |
+WebInspector.BottomUpAllocationNode = function(functionInfo) |
{ |
this.functionInfo = functionInfo; |
this.allocationCount = 0; |
@@ -246,10 +253,10 @@ WebInspector.AllocationBackTraceNode = function(functionInfo) |
} |
-WebInspector.AllocationBackTraceNode.prototype = { |
+WebInspector.BottomUpAllocationNode.prototype = { |
/** |
- * @param {!WebInspector.AllocationTraceNode} traceNode |
- * @return {!WebInspector.AllocationTraceNode} |
+ * @param {!WebInspector.TopDownAllocationNode} traceNode |
+ * @return {!WebInspector.TopDownAllocationNode} |
*/ |
addCaller: function(traceNode) |
{ |
@@ -263,14 +270,14 @@ WebInspector.AllocationBackTraceNode.prototype = { |
} |
} |
if (!result) { |
- result = new WebInspector.AllocationBackTraceNode(functionInfo); |
+ result = new WebInspector.BottomUpAllocationNode(functionInfo); |
this._callers.push(result); |
} |
return result; |
}, |
/** |
- * @return {!Array.<!WebInspector.AllocationBackTraceNode>} |
+ * @return {!Array.<!WebInspector.BottomUpAllocationNode>} |
*/ |
callers: function() |
{ |
@@ -289,6 +296,11 @@ WebInspector.AllocationBackTraceNode.prototype = { |
/** |
* @constructor |
+ * @param {string} functionName |
+ * @param {string} scriptName |
+ * @param {number} scriptId |
+ * @param {number} line |
+ * @param {number} column |
*/ |
WebInspector.FunctionAllocationInfo = function(functionName, scriptName, scriptId, line, column) |
{ |
@@ -305,6 +317,9 @@ WebInspector.FunctionAllocationInfo = function(functionName, scriptName, scriptI |
} |
WebInspector.FunctionAllocationInfo.prototype = { |
+ /** |
+ * @param {!WebInspector.TopDownAllocationNode} node |
+ */ |
addTraceTopNode: function(node) |
{ |
if (node.allocationCount === 0) |
@@ -317,38 +332,38 @@ WebInspector.FunctionAllocationInfo.prototype = { |
}, |
/** |
- * @return {?WebInspector.AllocationBackTraceNode} |
+ * @return {?WebInspector.BottomUpAllocationNode} |
*/ |
- tracesWithThisTop: function() |
+ bottomUpRoot: function() |
{ |
if (!this._traceTops.length) |
return null; |
- if (!this._backTraceTree) |
+ if (!this._bottomUpTree) |
this._buildAllocationTraceTree(); |
- return this._backTraceTree; |
+ return this._bottomUpTree; |
}, |
_buildAllocationTraceTree: function() |
{ |
- this._backTraceTree = new WebInspector.AllocationBackTraceNode(this._traceTops[0].functionInfo); |
+ this._bottomUpTree = new WebInspector.BottomUpAllocationNode(this); |
for (var i = 0; i < this._traceTops.length; i++) { |
var node = this._traceTops[i]; |
- var backTraceNode = this._backTraceTree; |
+ var bottomUpNode = this._bottomUpTree; |
var count = node.allocationCount; |
var size = node.allocationSize; |
var liveCount = node.liveCount; |
var liveSize = node.liveSize; |
while (true) { |
- backTraceNode.allocationCount += count; |
- backTraceNode.allocationSize += size; |
- backTraceNode.liveCount += liveCount; |
- backTraceNode.liveSize += liveSize; |
+ bottomUpNode.allocationCount += count; |
+ bottomUpNode.allocationSize += size; |
+ bottomUpNode.liveCount += liveCount; |
+ bottomUpNode.liveSize += liveSize; |
node = node.parent; |
if (node === null) { |
break; |
} |
- backTraceNode = backTraceNode.addCaller(node); |
+ bottomUpNode = bottomUpNode.addCaller(node); |
} |
} |
} |