[meta] Support off-thread JS parsing during Atoms-Zone GC
Categories
(Core :: JavaScript Engine, task, P1)
Tracking
()
People
(Reporter: tcampbell, Unassigned)
References
(Blocks 2 open bugs)
Details
(Keywords: meta)
With our current barrier setup, we do not allow off-thread JS parsing to occur while an incremental GC that includes the atoms-zone is running. This restriction works both ways (parse stalls GC; GC stalls parse).
This requires avoiding using a parseGlobal
entirely and doing GC-alocation on main-thread. Both normal scripts and modules should be supported, but eval and friends do not run off-thread so we can avoid complex scope snapshots for now. The XDR support for CompilationStencil is also required for this milestone so that it does not require a parseGlobal
.
Reporter | ||
Updated•4 years ago
|
Reporter | ||
Comment 2•4 years ago
|
||
The Stencil-MVP pref is riding the trains for FF86 and we can close this now.
No major changes to perf numbers are expected or have happened, but we now are using Stencil format for content JS bytecode caching, and are performing GC allocation for parsing on main-thread, avoiding using the parser-global.
Remaining uses of legacy-XDR / off-thread-parse-global:
- Decoding cache files off-thread will continue to allocate GC objects off thread to avoid some performance issues. This should be fixable long-term.
- StartupCache / ScriptPreloader / XULPrototypeCache continue to use legacy-XDR format and must be upgraded
(And of course all the new things that build on top of Stencil)
Description
•