Closed Bug 1569315 Opened 6 years ago Closed 6 years ago

Defer allocation of JSFunctions until after Parsing is done.

Categories

(Core :: JavaScript Engine, enhancement, P1)

enhancement

Tracking

()

RESOLVED FIXED

People

(Reporter: mgaudet, Assigned: mgaudet)

References

Details

Attachments

(10 files, 5 obsolete files)

47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review

To further our goal of decoupling the parser for the GC, we'd like to be able to avoid creating JSFunctions until after the parser is done its business.

Depends on D38699

Remaining are the stand-alone parses, and a dummy function allocation
for Asm.JS I think

Depends on D39775

Kicked off some Performance test results (--rebuild=10)

  • AWSY Results: No major memory impacts

  • Raptor Results: almost all results are low confidence with the exception of two webaudio tests which see 2% degradations. It does seem like there's something real here, as there's some high confidence degradations reported in the subtests. I do think that the extreme quantization of the scores suggests the effect may be magnified by quantization though.

Keywords: leave-open
Pushed by mgaudet@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/3f46633be59a Sink prototype fetching into AllocNewFunction r=tcampbell https://hg.mozilla.org/integration/autoland/rev/86c50e8added Create FunctionFlags class to allow recycling function flag queries elsewhere r=tcampbell
Attachment #9082369 - Attachment is obsolete: true
Pushed by mgaudet@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/5d553fb84ecb Factor out FunctionCreationData from AllocNewFunction r=tcampbell,jonco https://hg.mozilla.org/integration/autoland/rev/eb0b2f561461 Factor FunctionCreationData into its own header r=tcampbell
Backout by apavel@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/be22f622aeea Backed out 2 changesets on request from mgaudet on a CLOSED TREE
Pushed by mgaudet@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/a8a2410665d2 Factor out FunctionCreationData from AllocNewFunction r=tcampbell,jonco https://hg.mozilla.org/integration/autoland/rev/236dacd806bf Factor FunctionCreationData into its own header r=tcampbell
Flags: needinfo?(mgaudet)
Attachment #9081408 - Attachment is obsolete: true
Attachment #9081415 - Attachment is obsolete: true
Attachment #9081414 - Attachment is obsolete: true
Attachment #9082279 - Attachment is obsolete: true
Attachment #9081413 - Attachment description: Bug 1569315 - Defer allocation of JSFunction for synthesizeConstructor in parser r?tcampbell → Bug 1569315 - Defer allocation of JSFunctions in the parser r?tcampbell

This makes eager processing the default as well, which makes the code
effectively work how it does before the FunctionTree patches.

Depends on D39774

Pushed by mgaudet@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/2a86de9ceb74 Defer allocation of JSFunctions in the parser r=tcampbell https://hg.mozilla.org/integration/autoland/rev/82baf5ba9e0e Make FunctionTree processing either Eager or Deferred. r=tcampbell https://hg.mozilla.org/integration/autoland/rev/d17a7b268784 Clarify GC status of FunctionCreationData r=tcampbell https://hg.mozilla.org/integration/autoland/rev/215ea735bc32 Unify flags access code in FunctionFlags r=tcampbell

I'm doing some follow-up tweaking that we didn't get finished before Matt went on leave. One important detail is that the current code in mozilla-central always runs in 'eager' mode which matches the existing parser behaviour. There is no immediate win with just the parser decoupled, so we will take a little more time to iterate on it.

Pushed by tcampbell@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/8dda9d1aa824 Follow-up formatting nits. r=iain https://hg.mozilla.org/integration/autoland/rev/c27593789b12 Fix additional nits around JSFunction allocation deferral. r=iain
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Keywords: leave-open
Resolution: --- → FIXED
Depends on: 1588133
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: