Closed Bug 1660781 Opened 4 years ago Closed 4 years ago

Lazily load all external modules in Marionette's JSWindowActor classes

Categories

(Remote Protocol :: Marionette, enhancement, P1)

Default
enhancement

Tracking

(firefox82 fixed)

RESOLVED FIXED
82 Branch
Tracking Status
firefox82 --- fixed

People

(Reporter: whimboo, Assigned: whimboo)

References

(Blocks 1 open bug)

Details

(Whiteboard: [marionette-fission-mvp][fxperf])

Attachments

(2 files)

All the modules in the JSWindowActorChild class have to be loaded lazily to prevent performance and memory issues when loading the actor in each content process.

Summary: Lazily load all external modules in MarionetteFrameChild.jsm → Lazily load all external modules in Marionette's JSWindowActor classes
Blocks: 1660881

Here two AWSY try builds which should show the difference in memory usage:

See also bug 1655438 for the initial memory regression when the actors got enabled by default. It means before we can enable the pref by default, we will have to get this bug fixed.

Here the perfherder results from the try builds which are kinda exiting:
https://treeherder.mozilla.org/perf.html#/compare?originalProject=try&originalRevision=5797deb14fb24e0f3395cfe96438545d4bfffa07&newProject=try&newRevision=53d2bed4b63348e1804de14640c10d8b5955bb1f&framework=4

I'm not sure about the Windows 7 results, but if needed we can investigate later. Btw. I expect even more improvements with bug 1660881 landed.

Blocks: 1660881

To prevent performance degration and extra memory usage in Firefox
for newly spawned content processes, only load external modules if
required in both the parent and child actor.

Depends on D88137

Pushed by hskupin@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/7177d23d81dc
[marionette] Refactor code in error.js into a single error namespace. r=marionette-reviewers,maja_zf
https://hg.mozilla.org/integration/autoland/rev/d30297422f2f
Lazily load all external modules in Marionette's JSWindowActor classes. r=marionette-reviewers,maja_zf
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 82 Branch

Mike, not sure if fxperf fits for Marionette (it's not enabled by default) but clearly has an impact for internal testing (awsy) and external tools like Selenium.

Whiteboard: [marionette-fission-mvp] → [marionette-fission-mvp][fxperf]
Product: Testing → Remote Protocol
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: