Commit Graph

7 Commits

Author SHA1 Message Date
Ruturaj K. Vartak
6e5caea896 Bug 1326331 - Fix Eslint errors in devtools/shared/heapsnapshot/. r=jryans 2017-03-09 21:03:00 -05:00
Nick Fitzgerald
7114240100 Bug 1248085 - Compute shortest paths in the HeapAnalysesWorker; r=jimb 2016-02-12 15:23:00 +01:00
Nick Fitzgerald
ec3afae27f Bug 1241221 - Part 1: Fix incorrect reporting of "moreChildrenAvailable". r=jdescottes
The condition checked when reporting whether there were `moreChildrenAvailable`
when constructing the initial DominatorTreeNode tree from a DominatorTree was
backwards. This commit fixes the condition and adds a test that fails without
the condition fix.
2016-01-20 23:29:46 -05:00
Nick Fitzgerald
cfd8b71c65 Bug 1236673 - Add a method for getting the canonical node along a path; r=jsantell 2016-01-06 13:57:12 -08:00
Nick Fitzgerald
57884de0f1 Bug 1235883 - Add support for inserting lazily loaded children into a DominatorTreeNode tree; r=jsantell
This commit adds the `DominatorTreeNode.insert` method to insert new
DominatorTreeNode children that have just been loaded from the
HeapAnalysesWorker into an existing partially complete DominatorTreeNode
tree. This is done in a persistent and immutable fashion so that we can use
=== to differentiate different generations of `DominatorTreeNode` trees but
still share the vast majority of the underlying structure.

As infrastructure for the insertion, HeapAnalysesWorker's
`getImmediatelyDominated` response also returns the path from the root to the
node whose immediately dominated children are being fetched. This makes it much
easier to know where to insert the newly loaded children.
2016-01-06 13:57:12 -08:00
Nick Fitzgerald
0a68f9ead3 Bug 1232390 - Use HeapSnapshot.describeNode to generate labels for nodes; r=jsantell 2015-12-18 12:05:14 -08:00
Nick Fitzgerald
41f4dd8d45 Bug 1229960 - Add support for computing and traversing dominator trees to HeapAnalysisWorker; r=jsantell
This commit defines `DominatorTreeNode`, a JS class representing a node in a
heap snapshot's dominator tree. Three heap analysis client/worker
request/responses request and create these `DominatorTreeNode`s. Unlike
censuses, dominator trees are too big to practically mirror in memory as JS
object structures. Instead, we have one request to get a partial/shallow
representation of the tree starting from the root, and another to get subsequent
children and siblings in the tree. This allows for incremental, lazy, and
bounded mirroring of the dominator tree as `DominatorTreeNode`s.
2015-12-03 09:15:13 -08:00