Closed Bug 1697803 Opened 4 years ago Closed 4 years ago

6.71 - 8.22% raptor-assorted-dom-firefox (linux64-shippable, linux64-shippable-qr) regression on push a0ee10a962a025723bcf5eb8c92a2412ad54c55f (Fri March 5 2021)

Categories

(Core :: JavaScript Engine, defect)

defect

Tracking

()

RESOLVED FIXED
88 Branch
Tracking Status
firefox-esr78 --- unaffected
firefox86 --- unaffected
firefox87 --- unaffected
firefox88 --- fixed

People

(Reporter: igoldan, Assigned: jandem)

References

(Regression)

Details

(Keywords: perf, perf-alert, regression)

Attachments

(1 file)

Perfherder has detected a raptor performance regression from push a0ee10a962a025723bcf5eb8c92a2412ad54c55f. As author of one of the patches included in that push, we need your help to address this regression.

Regressions:

Ratio Suite Test Platform Options Absolute values (old vs new)
8% raptor-assorted-dom-firefox linux64-shippable nocondprof 73.66 -> 79.71
7% raptor-assorted-dom-firefox linux64-shippable-qr nocondprof webrender 76.23 -> 81.35

Details of the alert can be found in the alert summary, including links to graphs and comparisons for each of the affected tests. Please follow our guide to handling regression bugs and let us know your plans within 3 business days, or the offending patch(es) will be backed out in accordance with our regression policy.

For more information on performance sheriffing please see our FAQ.

Flags: needinfo?(jdemooij)

Set release status flags based on info from the regressing bug 1689413

I verified we generate exactly the same CacheIR as before. I think what's happening is that for window.performance we call the generic binding getter and this has some checks for proxies/wrappers that require an extra dereference now. This was an intentional trade-off we made in bug 1689413 that's unlikely to affect non-micro-benchmarks as much.

I'm hoping we can optimize this the coming months by checking the shape kind instead of the JSClass flags to determine whether an object is a proxy, that would save us two dereferences and would be faster than before.

For now I'll see if we can use the optimized DOM getter code for this.

This is similar to what we do for GetName already.

Assignee: nobody → jdemooij
Status: NEW → ASSIGNED

(In reply to Jan de Mooij [:jandem] from comment #2)

For now I'll see if we can use the optimized DOM getter code for this.

I posted a patch for this. It makes the benchmark about 3 times faster than before (and actually very close to what it was before we enabled Warp).

Flags: needinfo?(jdemooij)
Pushed by jdemooij@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/a71077321e06 Use DOM getter optimization for GetProp on WindowProxy too. r=evilpie
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 88 Branch

== Change summary for alert #29329 (as of Fri, 19 Mar 2021 10:07:06 GMT) ==

Improvements:

Ratio Suite Test Platform Options Absolute values (old vs new)
70% raptor-assorted-dom-firefox linux1804-64-shippable nocondprof 78.60 -> 23.95
67% raptor-assorted-dom-firefox linux1804-64-shippable-qr nocondprof webrender 81.44 -> 26.66
67% raptor-assorted-dom-firefox linux1804-64-shippable-qr nocondprof webrender 80.83 -> 26.59

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

Has Regression Range: --- → yes
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: