Commit Graph

102 Commits

Author SHA1 Message Date
Nick Fitzgerald
072892a32a Bug 1226879 - Fix census tree sorting issue with inverted allocation stack breakdown; r=jimb 2016-02-24 13:11:00 +01:00
Nick Fitzgerald
abf496a650 Bug 1250307 - Add the by: "bucket" breakdown option; r=jimb
This commit introduces `{ by: "bucket" }` breakdown type. Similar to `by:
"count"`, this breakdown type is a leaf and doesn't further categorize or filter
nodes that it counts. Instead, it accumulates them in a bucket and reports them
as a array of node IDs.

MozReview-Commit-ID: EeyWlrj9ujf
2016-02-23 14:15:51 -08:00
Nick Fitzgerald
ff15f0549c Bug 1248085 - Compute shortest paths in the HeapAnalysesWorker; r=jimb 2016-02-12 15:23:00 +01:00
Nick Fitzgerald
e7a89cd665 Bug 1247658 - Expose a method to JS for find the shortest retaining paths of some nodes in a heap snapshot; r=bz r=jimb
This commit adds the `computeShortestPaths` method to the `HeapSnapshot` webidl
interface. It implements this new method on the
`mozilla::devtools::HeapSnapshot` class.
2016-02-11 14:32:00 +01:00
Julian Descottes
a46f8286a8 Bug 1246570 - mem.tool parentMap maps nodeId->node, remove verbose xpcshell logs;r=fitzgen 2016-02-10 17:57:37 +01:00
Sebastian Hengst
c54dee4730 Backed out changeset e1576fc08c1c (bug 1246570) for XPCshell failures. r=backout 2016-02-10 12:55:11 +01:00
Julian Descottes
b9128a3276 Bug 1246570 - memory tool: parentMap should map nodeId->node. r=fitzgen 2016-02-08 21:16:22 +01:00
Nick Fitzgerald
8d77d07807 Bug 1246017 - Create the parent map in the HeapAnalysesWorker; r=jimb 2016-02-05 15:11:48 -08:00
Carsten "Tomcat" Book
3242d8a0f5 Backed out changeset 92889fed3b3b (bug 1246017) for xpcshell bustage 2016-02-05 14:06:27 +01:00
Nick Fitzgerald
32b4b8d69a Bug 1246017 - Create the parent map in the HeapAnalysesWorker; r=jimb 2016-02-04 18:05:00 +01:00
Nick Fitzgerald
c51e7e5d80 Bug 1226878 - Fix incorrect totals and percents in memory tool; r=jimb
When filtering, we were merging total counts and total bytes as we added
matching paths from the unfiltered tree into the new, filtered tree. This was
incorrect, and caused us to double, triple, ... count the totals.
2016-02-04 16:10:00 +01:00
Nick Fitzgerald
6795cfb21a Bug 1219554 - Follow up: HeapAnalysesClient should set its Worker reference null upon destruction; r=jsantell
This makes attempts to use the HeapAnalysesClient after the worker has already
been destroyed into an earlier, less quiet error so we can catch more of them
and catch them sooner.
2016-02-04 11:53:00 +01:00
Bill McCloskey
8916b1d998 Bug 1240871 - Don't allow implicit "async" in IPDL (r=mccr8,billm) 2016-01-28 20:56:37 -08:00
Carsten "Tomcat" Book
0cfb6c0b29 Merge mozilla-central to fx-team 2016-01-21 12:30:07 +01:00
Carsten "Tomcat" Book
d6d7f5602f merge mozilla-inbound to mozilla-central a=merge 2016-01-21 11:49:16 +01:00
Nick Fitzgerald
35eb40b14e 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
ece63db599 Bug 1241221 - Part 0: Test retained size of nodes in dominmator trees. r=sfink
This adds a new test for dominator trees computed from heap snapshots, to make
sure that a node's retained size matches the following:

    retainedSize(node) = shallowSize(node) + sum(retainedSize(c) for c in children(node))

This test did not find the bug described in bug 1241221, but seems like a
valuable test to have anyways.
2016-01-20 13:08:00 -05:00
Nick Fitzgerald
194ce11963 Bug 1220336 - Give HeapSnapshot.creationTime tests more slack for WinXP. r=jdescottes
These two tests have been intermittently failing on WinXP because the
`Date.now()` timers only have a granularity of +/- 15 milliseconds on that
platform. This commit ensures that we have a range of at least 30 milliseconds
before and after taking the snapshot to ensure that the snapshot's timestamp
will fit within the range.
2016-01-19 13:51:00 +01:00
Julian Descottes
78c2dc92e7 Bug 1215955 - Add deleteSnapshot to HeapAnalysisWorker. r=fitzgen 2016-01-12 10:41:17 +01:00
Lars T Hansen
9ce33177bd Bug 1239666 - part 3, devtools test case changes. r=sphink 2016-01-18 09:49:17 +01:00
Luke Wagner
57aa5b0ea6 Bug 1239601 - improve the UniquePtr situation (r=jorendorff) 2016-01-15 18:26:06 -06:00
Wes Kocher
5fb9ef3ef3 Backed out changeset c457397a08bb (bug 1215955) for being a possible cause of frequent devtools failures in browser_profiler_tree-abstract-02.js a=backout 2016-01-15 10:43:01 -08:00
Julian Descottes
707f31a5b2 Bug 1215955 - Add deleteSnapshot to HeapAnalysisWorker. r=fitzgen 2016-01-12 10:41:17 +01:00
Julian Descottes
1eaaa02678 Bug 1238639 - HeapAnalysesWorker getCreationTime throws when given non-existant path;r=fitzgen 2016-01-12 11:13:54 +01:00
Nick Fitzgerald
370fb04761 Bug 1239154 - Add default bug component to memory tool related directories; r=jsantell 2016-01-13 12:27:30 -08:00
Nick Fitzgerald
8c642bd85f 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
b34762684b 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
Ehsan Akhgari
14367186d8 Bug 579517 follow-up: Remove NSPR types that crept in 2015-12-30 22:52:50 -05:00
Jeff Walden
0195fbed46 Bug 1235615 - Split JS::CompartmentOptions into JS::CompartmentCreationOptions that are immutable characteristics of a compartment, and JS::CompartmentBehaviors that may be changed after the compartment's been created. r=terrence 2015-12-28 16:15:52 -06:00
Nick Fitzgerald
7667ebb9e3 Bug 1232390 - Use HeapSnapshot.describeNode to generate labels for nodes; r=jsantell 2015-12-18 12:05:14 -08:00
Nick Fitzgerald
fa0235409b Bug 1231883 - Implement HeapSnapshot.describeNode; r=mrbkap
This commit implements the HeapSnapshot.describeNode method which allows chrome
JS code to request a description of a given node as specified by our existing
"breakdown" language. This description can be used to generate a human-readable
label for the node.
2015-12-18 12:05:14 -08:00
Nick Fitzgerald
7bfd1f3ec1 Bug 1231763 - Extract breakdown parsing from JS::ubi::Census. r=jimb 2015-12-16 09:19:00 +01:00
Patrick Brosset
4e4f8e5714 Bug 1229859 - Massively reduce the number of eslint errors in devtools by ignoring lib files, adding missing .eslintrc files and making some rules be warnings; r=Mossop 2015-12-10 15:46:32 -05:00
Nick Fitzgerald
d4d06c9670 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
Nick Fitzgerald
fc1e123cbe Bug 1226440 - Expose a method to get a node's immediate dominator; r=bz,sfink
This commit adds the `getImmediateDominator` method to `DominatorTree` which
returns the id of the immediate dominator of the node associated with the given
id. This enables walking the dominator tree from leaves up parents all the way
to the root of the tree.
2015-11-30 17:38:06 -08:00
Nick Fitzgerald
2aace9ce67 Bug 1226416 - Expose a method to get a node's set of immediately dominated nodes in the dominator tree; r=bz,sfink
This adds the `getImmediatelyDominated` method to `DominatorTree` which takes a
node id and returns the set of each node ids for every node that is immediately
dominated by the node with the given id. The results are sorted by greatest to
least retained size. In conjunction with the `root` attribute, this can be used
to traverse the whole dominator tree.
2015-11-30 17:38:06 -08:00
Nick Fitzgerald
4d4e2d4b7a Bug 1226217 - Use less verbose cycle collection macros for mozilla::devtools::HeapSnapshot; r=bz 2015-11-19 07:45:00 +01:00
Jan Varga
6abef8f019 Bug 961049 - Part 3: Move PersistenceType serializer from indexedDB to quota module; r=baku 2015-11-22 10:43:34 +01:00
Nick Fitzgerald
46291339a7 Bug 1226225 - Allow backups of size zero in ZeroCopyNSIOutputStream::BackUp; r=jimb 2015-11-20 11:36:10 -08:00
Nick Fitzgerald
4d5f410954 Bug 1226176 - Compute retained sizes in dominator trees and expose them to JavaScript; r=bz,sfink 2015-11-20 09:08:15 -08:00
Nick Fitzgerald
d57a6c8158 Bug 1226024 - Expose the root of the dominator tree to JavaScript; r=bz,sfink 2015-11-19 08:10:13 -08:00
Nick Fitzgerald
65886c2650 Bug 1225588 - Expose DominatorTree to JavaScript; r=sfink,bz
This commit adds the DominatorTree.webidl interface, which is only exposed to
chrome JS. The interface is implemented by mozilla::devtools::DominatorTree,
which is a thin wrapper around JS::ubi::DominatorTree. This does not expose any
methods on the DominatorTree interface, those will come as follow up changesets.
2015-11-18 14:12:23 -08:00
Tom Tromey
136c145b1a Bug 1223954 - don't use implicitJSContext for readHeapSnapshot and saveHeapSnapshot; r=bz 2015-11-12 08:51:00 +01:00
Phil Ringnalda
bf6b0c0919 Merge m-i to m-c, a=merge 2015-11-14 13:22:10 -08:00
Nick Fitzgerald
014917681f Bug 960780 - Add support for diffing heap snapshots to the memory tool frontend; r=jsantell,ntim 2015-11-13 11:20:45 -08:00
Nick Fitzgerald
21aa2b1cf4 Bug 1149285 - Abstract out edge matching with a custom gmock matcher; r=vporof 2015-11-05 13:51:00 +01:00
Nick Fitzgerald
e1a3d3e220 Bug 1149245 - Make DeserializedEdgeRange re-use its referents edge vector; r=vporof 2015-11-04 12:21:00 +01:00
Nick Fitzgerald
8400ed49ff Bug 1160379 - Annotate relevant tests for --tag devtools-memory. r=jsantell 2015-11-05 10:53:00 +01:00
Carsten "Tomcat" Book
a06710379c merge mozilla-inbound to mozilla-central a=merge 2015-11-05 11:58:55 +01:00
Nick Fitzgerald
d1d159d214 Bug 1221360 - Add a filter transform to CensusTreeNode; r=jsantell 2015-11-04 16:12:31 -08:00