Warp: Improved JS performance in Firefox 83
Forum rules
This General Discussion board is meant for topics that are still relevant to Pale Moon, web browsers, browser tech, UXP applications, and related, but don't have a more fitting board available.
Please stick to the relevance of this forum here, which focuses on everything around the Pale Moon project and its user community. "Random" subjects don't belong here, and should be posted in the Off-Topic board.
This General Discussion board is meant for topics that are still relevant to Pale Moon, web browsers, browser tech, UXP applications, and related, but don't have a more fitting board available.
Please stick to the relevance of this forum here, which focuses on everything around the Pale Moon project and its user community. "Random" subjects don't belong here, and should be posted in the Off-Topic board.
Warp: Improved JS performance in Firefox 83
Introducing Warp, a.k.a WarpBuilder or SpiderMonkey/JIT compiler on steroids
More information on how warp operates plus some interesting benchmarks, on this post
https://hacks.mozilla.org/2020/11/warp- ... irefox-83/
More information on how warp operates plus some interesting benchmarks, on this post
https://hacks.mozilla.org/2020/11/warp- ... irefox-83/
Re: Warp: Improved JS performance in Firefox 83
That's honestly interesting (though it probably is more suited for the off-topic board?), but from the name I thought it would be something special when it's only a two-pass JIT that even Guile Scheme has.
Re: Warp: Improved JS performance in Firefox 83
Sounds like a lot of noise for something that's just a reorganization of what bytecode source gets used.
We already do multi-stage JIT; we already compile off-main-thread; we already partially use CacheIR code to feed IonMonkey, the difference is that we also use regular bytecode to create our MIR code. Yes, the drawback is that type inference requires keeping track of where everything comes from and that's overhead.
Benchmarks
What we've been doing for our decade has finally caught up with them: Global optimizations being better than specialized optimizations to satisfy synthetic benchmarks:
Not that I agree with what they replaced their criterion-of-speed with because "Speedometer" is just another synthetic benchmark that tests only one thing and is still not real-world representative.
We already do multi-stage JIT; we already compile off-main-thread; we already partially use CacheIR code to feed IonMonkey, the difference is that we also use regular bytecode to create our MIR code. Yes, the drawback is that type inference requires keeping track of where everything comes from and that's overhead.
Benchmarks
What we've been doing for our decade has finally caught up with them: Global optimizations being better than specialized optimizations to satisfy synthetic benchmarks:
This doesn't have to do with "having put a decade of work in" but rather putting stress on the wrong things -- and instead of tossing out the over-specializations done to get higher scores, they just tossed it all and rearchitectured (because that's what Mozilla does these days). So all that rearchitecturing work is a 10-15% faster compilation time on page load? Not really worth it, if you ask me, but hey, nobody ever asks meWarp is currently slower than Ion on certain synthetic JS benchmarks such as Octane and Kraken. This isn’t too surprising because Warp has to compete with almost a decade of optimization work and tuning for those benchmarks specifically.
We believe these benchmarks are not representative of modern JS code (see also the V8 team’s blog post on this) and the regressions are outweighed by the large speedups and other improvements elsewhere.
Not that I agree with what they replaced their criterion-of-speed with because "Speedometer" is just another synthetic benchmark that tests only one thing and is still not real-world representative.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite
Re: Warp: Improved JS performance in Firefox 83
OK, so I did some tests with Mozilla's own suite (which was conveniently recently decommissioned, I wonder why...).
Compared Firefox with WarpBuilder enabled and disabled over the wide array of different tests performed (JS, DOM, Strings, etc.).
For reference I also tossed in our generally-optimized (non-profiled) Pale Moon release build. The performance calculation is comparing between the same build of Firefox on a clean profile with warp disabled and enabled (with a restart in-between).
You can draw your own conclusions, the results are here.
Compared Firefox with WarpBuilder enabled and disabled over the wide array of different tests performed (JS, DOM, Strings, etc.).
For reference I also tossed in our generally-optimized (non-profiled) Pale Moon release build. The performance calculation is comparing between the same build of Firefox on a clean profile with warp disabled and enabled (with a restart in-between).
You can draw your own conclusions, the results are here.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite
Re: Warp: Improved JS performance in Firefox 83
Just to make sure, higher is better, right?
Anyway that's an interesting chart, thanks for sharing.
Anyway that's an interesting chart, thanks for sharing.
Re: Warp: Improved JS performance in Firefox 83
Yes higher is better -- this is in test runs/second as a "unit".
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite
- jobbautista9
- Keeps coming back
- Posts: 784
- Joined: 2020-11-03, 06:47
- Location: Philippines
- Contact:
Re: Warp: Improved JS performance in Firefox 83
Both of them are Firefox 83, right?
It would also be interesting to see a comparison between Pale Moon's current unstable build and Firefox 83 with Warp enabled and disabled.
merry mimas
XUL add-ons developer. You can find a list of add-ons I manage at http://rw.rs/~job/software.html.
Mima avatar by 絵虎. Pixiv post: https://www.pixiv.net/en/artworks/15431817
Re: Warp: Improved JS performance in Firefox 83
Why? Do you think Pale Moon is going to make major changes to it's JavaScript engine in this release?jobbautista9 wrote: ↑2020-11-15, 02:54It would also be interesting to see a comparison between Pale Moon's current unstable build and Firefox 83 with Warp enabled and disabled.
Re: Warp: Improved JS performance in Firefox 83
Actually 84.0a1, so with potential post-release improvements, but yes the exact same installed version of it.
I only included Pale Moon because I found the numbers interesting to compare with Firefox (it's been a long while since I did that), the main reason I ran the tests is to compare with Warp enabled and disabled on the same installation.jobbautista9 wrote: ↑2020-11-15, 02:54It would also be interesting to see a comparison between Pale Moon's current unstable build and Firefox 83 with Warp enabled and disabled.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite
Re: Warp: Improved JS performance in Firefox 83
JS wise there isn't much of a difference between Unstable and Release. Due to the slow progress on several important issues holding back the Pale Moon 29 milestone and with the second version number going into double digits we are keeping things a lot closer to trunk and not holding most things back as we normally would due to the split development scheme we had to employ.
So I expect testing Unstable wouldn't produce significant differences.
So I expect testing Unstable wouldn't produce significant differences.