Closed Bug 1606514 Opened 4 years ago Closed 3 years ago

Faster visible-rows-only and pixel-aligned waterfall column

Categories

(DevTools :: Netmonitor, enhancement, P3)

enhancement

Tracking

(firefox75 fixed)

VERIFIED FIXED
Firefox 75
Tracking Status
firefox75 --- fixed

People

(Reporter: Harald, Assigned: Harald)

References

(Blocks 1 open bug, Regressed 1 open bug)

Details

Attachments

(3 files)

Waterfall was the most expensive component, across the board (fetching additional eventTiming data, created React elements and CSS cost)

Part 1: Only show Waterfall only for visible rows

  1. IntersectionObserver collects which rows are off screen as state
  2. New elements register with the list observer and unregister later
  3. Waterfall column is only rendered for visible rows and just an empty TD for the rest

Part 2: Scale Waterfall without transform

  1. Waterfall isn't handled by CSS variables anymore (fixed expensive styling phase).
  2. Using the newly gained CPU cycles RequestListColumnWaterfall now listens to the getWaterfallScale state and uses it to position the boxes to exact pixels.
  3. Pixels ensure minimum width for boxes (fixes useless rendering of 0-width boxes; which end up showing a waterfall of mostly total time labels).

Miscellaneous fixes

  • Taller boxes (closer to Chrome)
  • Fixes layout jitter that rendering waterfall causes (the text added 0.5px height difference is my guess)
  • Vertically aligned waterfall bars and labels (were slightly off center previously)

Profile comparison (16 to 11ms overall, much more responsive UI with more frequent updates): https://perfht.ml/2rIJJHE

Assignee: nobody → hkirschner
Status: NEW → ASSIGNED

Attaching a patch that fixes most of the test failures:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=029d5dc022f684c330819feca9fac4d8289827d7&selectedJob=287940247

I am seeing just one test failure now:
devtools/client/webconsole/test/browser/browser_webconsole_network_messages_openinnet.js

I can't repro locally, needs some more investigation.

Honza

Pushed by hkirschner@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/96965c8f4575
Faster visible-rows-only and pixel-aligned waterfall column r=Honza,jdescottes
Pushed by hkirschner@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/10d15000963d
Faster visible-rows-only and pixel-aligned waterfall column r=Honza,jdescottes
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 75

https://treeherder.mozilla.org/perf.html#/alerts?id=24959&hideDwnToInv=0

== Change summary for alert #24959 (as of Mon, 17 Feb 2020 03:48:26 GMT) ==

Regressions:

8% damp complicated.netmonitor.exportHar linux64-shippable-qr opt e10s stylo 847.45 -> 917.46
8% damp complicated.netmonitor.exportHar linux64-shippable opt e10s stylo 809.49 -> 870.42

Improvements:

38% damp simple.netmonitor.requestsFinished.DAMP windows10-64-shippable opt e10s stylo 140.09 -> 87.35
37% damp simple.netmonitor.requestsFinished.DAMP windows10-64-shippable-qr opt e10s stylo 139.00 -> 87.83
36% damp simple.netmonitor.requestsFinished.DAMP linux64-shippable-qr opt e10s stylo 146.37 -> 93.58
36% damp simple.netmonitor.requestsFinished.DAMP linux64-shippable opt e10s stylo 146.55 -> 93.91
19% damp complicated.netmonitor.close.DAMP windows10-64-shippable opt e10s stylo 44.47 -> 36.08
7% damp complicated.netmonitor.requestsFinished.DAMP linux64-shippable-qr opt e10s stylo 2,077.02 -> 1,932.99

For up to date results, see: https://treeherder.mozilla.org/perf.html#/alerts?id=24959

Status: RESOLVED → VERIFIED
Flags: needinfo?(hkirschner)
Blocks: 1617277
Depends on: 1636353
No longer depends on: 1636353
Regressions: 1636353
You need to log in before you can comment on or make changes to this bug.