Closed Bug 1160332 Opened 9 years ago Closed 9 years ago

Reselecting with calltree in view results in choppy rerendering

Categories

(DevTools :: Performance Tools (Profiler/Timeline), defect, P1)

37 Branch
defect

Tracking

(firefox40 fixed)

RESOLVED FIXED
Firefox 40
Tracking Status
firefox40 --- fixed

People

(Reporter: jsantell, Assigned: jsantell)

References

Details

Attachments

(1 file, 1 obsolete file)

Suspect a lazy debounce or lazy rendering of the calltree will fix this. Gif: http://i.imgur.com/zR2eAVJ.gif

This is important because in 40.0, we will ONLY have the js-calltree with the framerate graph.
(In reply to Jordan Santell [:jsantell] [@jsantell] from comment #0)
> Suspect a lazy debounce or lazy rendering of the calltree will fix this.
> Gif: http://i.imgur.com/zR2eAVJ.gif
> 

We already have a debounce, but it's probably not enough. Also, Nick's new `shouldUpdateWhileMouseIsActive` from bug 1157914 should help a lot.
Assignee: nobody → vporof
Status: NEW → ASSIGNED
Priority: -- → P1
Attached patch 1160332-mouseactive.patch (obsolete) — Splinter Review
In the bugzilla flurry, did not realize you grabbed this, victor. It looks like the patch in bug 1157914 was never rebased after the GraphsController landed, so it didn't actually work. This goes on top of it, fixing the jank for non flamegraph details views
https://treeherder.mozilla.org/#/jobs?repo=try&revision=766243eb6833
Assignee: vporof → jsantell
Attachment #8600190 - Flags: review?(vporof)
Comment on attachment 8600190 [details] [diff] [review]
1160332-mouseactive.patch

Review of attachment 8600190 [details] [diff] [review]:
-----------------------------------------------------------------

comments

::: browser/devtools/performance/modules/graphs.js
@@ +328,5 @@
>    /**
> +   * Returns an array of graphs that have been created, not necessarily
> +   * enabled currently.
> +   */
> +  getGraphs: function () {

getWidgets() is probably better. graphs.getGraphs() is weird as hell.

::: browser/devtools/performance/views/overview.js
@@ +99,5 @@
>    get isMouseActive() {
> +    // Fetch all graphs currently stored in the GraphsController.
> +    // These graphs are not necessarily active, but will not have
> +    // an active mouse, in that case.
> +    for (let graph of this.graphs.getGraphs()) {

return !!this.graphs.getGraphs().find(e => e.isMouseActive); is nicer.
Attachment #8600190 - Flags: review?(vporof) → review+
Comment on attachment 8600190 [details] [diff] [review]
1160332-mouseactive.patch

Review of attachment 8600190 [details] [diff] [review]:
-----------------------------------------------------------------

Actually, I'd love to see a small test for this.
Attachment #8600190 - Flags: review+ → feedback+
Attachment #8600221 - Flags: review?(vporof) → review+
Flags: in-testsuite+
https://hg.mozilla.org/mozilla-central/rev/14c8c3fd403c
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 40
Product: Firefox → DevTools
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: