Open Bug 1690277 Opened 3 years ago Updated 3 years ago

Snapshot delazification enclosing scope

Categories

(Core :: JavaScript Engine, task, P3)

task

Tracking

()

REOPENED

People

(Reporter: arai, Assigned: arai)

References

(Blocks 1 open bug)

Details

(Keywords: perf-alert)

Attachments

(1 obsolete file)

separated from bug 1660275.

to snapshot enclosing scope for delazification's usage, we need a list of free names in the lazy function,
and that requires storing the list in the lazy function itself (atoms in gcthings list).
that results in 2% awsy regression.

we should revisit this once we introduce delazify from stencil.

https://phabricator.services.mozilla.com/D103579 and https://phabricator.services.mozilla.com/D103580 contains previous attempt.

maybe it's better just snapshot the entire scope chain, instead of limiting to free names?
so that we don't have to keep the list in gcthings, and awsy regression won't happen.
If there's not too much variables, snapshotting the entire scope chain won't be much problematic.

When I had originally been thinking about this, many moons ago, I had seen us using a parallel data structure that merely pointed to pre-existing Scope::Data blocks (now renamed to Scope::RuntimeData I think)

If that's feasible (once ownership issues are solved), then you'd not have very much extra space at all.

Assignee: nobody → arai.unmht
Status: NEW → ASSIGNED
Pushed by arai_a@mac.com:
https://hg.mozilla.org/integration/autoland/rev/72fcd56bd169
Snapshot delazification enclosing scope. r=mgaudet
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 87 Branch
Regressions: 1692130
No longer regressions: 1692130
See Also: → 1692130
Regressions: 1692197
Status: RESOLVED → REOPENED
Flags: needinfo?(arai.unmht)
Resolution: FIXED → ---
Target Milestone: 87 Branch → ---

thanks!

I'll look into other way to solve the issue.

Flags: needinfo?(arai.unmht)

When this landed in comment #5, we noticed these perf regressions (the backout cancelled all of them):

== Change summary for alert #28740 (as of Thu, 11 Feb 2021 10:37:26 GMT) ==

Regressions:

Ratio Suite Test Platform Options Absolute values (old vs new)
10% raptor-tp6-wikipedia-firefox-cold windows10-64-shippable-qr nocondprof webrender 1,522.54 -> 1,680.01
7% raptor-tp6-twitch-firefox-cold loadtime windows10-64-shippable-qr nocondprof webrender 939.38 -> 1,003.08
6% raptor-tp6-twitch-firefox-cold windows10-64-shippable-qr nocondprof webrender 291.48 -> 310.29

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

See Also: → 1694055

There's a r+ patch which didn't land and no activity in this bug for 2 weeks.
:arai, could you have a look please?
For more information, please visit auto_nag documentation.

Flags: needinfo?(mgaudet)
Flags: needinfo?(arai.unmht)
Attachment #9202013 - Attachment is obsolete: true

The patch didn't work, in term of performance, and we need another solution.
We can keep the current behavior for now.

Flags: needinfo?(mgaudet)
Flags: needinfo?(arai.unmht)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: