Support baking in constant property values for builtin JS prototypes and constructors
Categories
(Core :: JavaScript Engine: JIT, task, P1)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox145 | --- | fixed |
People
(Reporter: jandem, Assigned: jandem)
References
Details
(Keywords: perf-alert, Whiteboard: [js-perf-next])
Attachments
(2 files)
After the global object and global lexical environment, we can also enable object fuses for builtin prototypes and constructors. This lets us get rid of more guards for cases such as Math.abs(x), array.join(), or number.toString().
This won't cover prototype objects created by the DOM or JS code yet, but it's a start.
| Assignee | ||
Comment 1•1 year ago
|
||
This lets us eliminate guards for calls to builtins such as Math.abs(x) or
array.join().
| Assignee | ||
Comment 2•1 year ago
|
||
Updated•1 year ago
|
Comment 4•11 months ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/859aa9f31374
https://hg.mozilla.org/mozilla-central/rev/6a272cfe39b5
Comment 5•11 months ago
|
||
(In reply to Pulsebot from comment #3)
Pushed by jdemooij@mozilla.com:
https://github.com/mozilla-firefox/firefox/commit/b8e3fb41fc38
https://hg.mozilla.org/integration/autoland/rev/859aa9f31374
part 1 - Use object fuses for builtin JS constructors and prototypes. r=iain
https://github.com/mozilla-firefox/firefox/commit/18da8fdd9602
https://hg.mozilla.org/integration/autoland/rev/6a272cfe39b5
part 2 - Optimize GetProp for objects with an object fuse. r=iain
Perfherder has detected a talos performance change from push 6a272cfe39b51dec0b2ffb95c1b7d419f38c6584.
If you have any questions, please reach out to a performance sheriff. Alternatively, you can find help on Slack by joining #perf-help, and on Matrix you can find help by joining #perftest.
Improvements:
| Ratio | Test | Platform | Options | Absolute values (old vs new) |
|---|---|---|---|---|
| 6% | perf_reftest_singletons id-getter-4.html | windows11-64-24h2-shippable | e10s fission stylo webrender | 145.58 -> 137.03 |
| 6% | perf_reftest_singletons id-getter-3.html | windows11-64-24h2-shippable | e10s fission stylo webrender | 145.63 -> 137.10 |
| 6% | perf_reftest_singletons id-getter-5.html | windows11-64-24h2-shippable | e10s fission stylo webrender | 145.71 -> 137.18 |
| 6% | perf_reftest_singletons id-getter-6.html | windows11-64-24h2-shippable | e10s fission stylo webrender | 145.84 -> 137.35 |
| 6% | perf_reftest_singletons id-getter-7.html | windows11-64-24h2-shippable | e10s fission stylo webrender | 145.99 -> 137.57 |
Details of the alert can be found in the alert summary, including links to graphs and comparisons for each of the affected tests.
If you need the profiling jobs you can trigger them yourself from treeherder job view or ask a performance sheriff to do that for you.
You can run all of these tests on try with ./mach try perf --alert 46834
The following documentation link provides more information about this command.
Updated•10 months ago
|
Description
•