Closed Bug 1797690 Opened 1 month ago Closed 20 days ago

Cover source-map npm package performance on DAMP

Categories

(DevTools :: Debugger, task)

task

Tracking

(firefox108 fixed)

RESOLVED FIXED
108 Branch
Tracking Status
firefox108 --- fixed

People

(Reporter: ochameau, Assigned: ochameau)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

The source-map package is perf sensitive as it impact the speed of the debugger to process sourcemapped files, but also impact external projects like babel, webpack, typescript,.. which are still using our npm package (some started using forks because of performance reason).

Bug 1797274 focused on testing the internal layer within Gecko/mozilla-central which wraps the source-map npm package and do more.
This current bug will focus on the npm package API only.

This depends on bug 1794693 as today, the source-map package isn't exposed in mozilla-central.
Instead this is wrapped into a webpack bundle and we can't access to raw source-map package modules.
https://searchfox.org/mozilla-central/rev/2d1097c27f31cb15f7588b043d691cda9710d14b/devtools/client/shared/source-map/index.js

Depends on: 1794693
Assignee: nobody → poirot.alex
Status: NEW → ASSIGNED
Pushed by apoirot@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/244069f551ca
[devtools] Track performance of source-map npm package. r=bomsy,jdescottes,perftest-reviewers,sparky
Status: ASSIGNED → RESOLVED
Closed: 20 days ago
Resolution: --- → FIXED
Target Milestone: --- → 108 Branch

== Change summary for alert #36028 (as of Thu, 10 Nov 2022 09:33:48 GMT) ==

Regressions:

Ratio Test Platform Options Absolute values (old vs new)
40% damp source-map-loader.init.DAMP windows10-64-shippable-qr e10s fission stylo webrender-sw 71.72 -> 100.47
39% damp source-map-loader.init.DAMP windows10-64-shippable-qr e10s fission stylo webrender 72.34 -> 100.22
36% damp source-map-loader.init.DAMP linux1804-64-shippable-qr e10s fission stylo webrender-sw 102.12 -> 139.32
35% damp source-map-loader.init.DAMP linux1804-64-shippable-qr e10s fission stylo webrender 104.01 -> 140.35
30% damp source-map-loader.init.DAMP macosx1015-64-shippable-qr e10s fission stylo webrender 65.34 -> 84.88
27% damp source-map-loader.init.DAMP macosx1015-64-shippable-qr e10s fission stylo webrender-sw 65.72 -> 83.72
24% damp complicated.styleeditor.open.DAMP windows10-64-shippable-qr e10s fission stylo webrender 323.22 -> 401.55
23% damp complicated.styleeditor.open.DAMP windows10-64-shippable-qr e10s fission stylo webrender-sw 330.63 -> 407.18
22% damp complicated.styleeditor.open.DAMP linux1804-64-shippable-qr e10s fission stylo webrender-sw 350.48 -> 426.70
18% damp complicated.styleeditor.open.DAMP macosx1015-64-shippable-qr e10s fission stylo webrender-sw 290.17 -> 343.59
... ... ... ... ...
3% damp simple.jsdebugger.open.DAMP linux1804-64-shippable-qr e10s fission stylo webrender 489.16 -> 503.29
3% damp custom.jsdebugger.open.DAMP linux1804-64-shippable-qr e10s fission stylo webrender 692.82 -> 712.53
3% damp simple.netmonitor.requestsFinished.DAMP windows10-64-shippable-qr e10s fission stylo webrender 101.64 -> 104.48
3% damp browser-toolbox.debugger-ready.DAMP macosx1015-64-shippable-qr e10s fission stylo webrender 998.07 -> 1,024.60
2% damp browser-toolbox.debugger-ready.DAMP macosx1015-64-shippable-qr e10s fission stylo webrender-sw 995.31 -> 1,018.13

Improvements:

Ratio Test Platform Options Absolute values (old vs new)
6% damp simple.netmonitor.close.DAMP windows10-64-shippable-qr e10s fission stylo webrender 9.41 -> 8.81
5% damp source-map.eachMapping.DAMP linux1804-64-shippable-qr e10s fission stylo webrender 246.80 -> 234.57
5% damp complicated.jsdebugger.open.DAMP macosx1015-64-shippable-qr e10s fission stylo webrender-sw 979.89 -> 933.54
4% damp source-map.originalPositionFor.DAMP linux1804-64-shippable-qr e10s fission stylo webrender 276.08 -> 265.16
4% damp source-map-loader.getOriginalLocation.DAMP linux1804-64-shippable-qr e10s fission stylo webrender-sw 123.90 -> 119.38
2% damp custom.netmonitor.open.DAMP macosx1015-64-shippable-qr e10s fission stylo webrender-sw 178.98 -> 175.30

For up to date results, see: https://treeherder.mozilla.org/perfherder/alerts?id=36028

The regression were expected.

It relates to moving from bundle (one big file) to independant modules (one file per module).
This was necessary to stop having the manual webpack build step and will later help migrate to ES Modules.
Hopefully we will haver better performance when moving to ESM. Today modules are loaded via some JS-implemented worker loader.

You need to log in before you can comment on or make changes to this bug.