JS demo at https://turbowarp.org/907856776?fps=60&turbo is 5x slower in Nightly compared to Chrome and spends a lot of time in Baseline
Categories
(Core :: JavaScript Engine, task, P3)
Tracking
()
People
(Reporter: mayankleoboy1, Unassigned)
References
(Depends on 1 open bug, Blocks 1 open bug, )
Details
Go to https://turbowarp.org/907856776?fps=60&turbo
Let it load
The rendering should start immediately.
For a more stress-test, set the number of iterations to maximum, and click on the "Rerender" button on the bottom right.
Nightly: https://share.firefox.dev/481SUC3 (34s)
Chrome: https://share.firefox.dev/3RJNENI (6.5s)
I suspect that the demo is using "eval" based on this line from the profiler "gen2_render [https://turbowarp.org/js/vendorseditorembedfullscreenplayer.e5a7260040dd29fef52d.js line 59 > Function:87:30] "
Feel free to WONTFIX
Reporter | ||
Updated•5 months ago
|
Reporter | ||
Comment 1•5 months ago
•
|
||
If you disable the turbocompiler* in the demo and then run the demos, the results are maybe more interesting -code runs 100% in ion, but is slower than Chrome
Nightly: https://share.firefox.dev/4aqLTwc (2m 24s with the profiler, 2m without the profiler)
Chrome: https://share.firefox.dev/3RL0riG (1m 17s)
*You can disable the compiler thusly : menu bar at top ->advanced-> Check the "Disable Compiler" ->Save settings in project-> rerun the demo
Updated•5 months ago
|
Comment 2•5 months ago
|
||
In the profile in comment 0 we spend quite a lot of time under JitRuntime::allocateIonOsrTempData
. NI myself to see if this is hitting an unexpected perf cliff.
Comment 3•4 months ago
|
||
(In reply to Jan de Mooij [:jandem] from comment #2)
In the profile in comment 0 we spend quite a lot of time under
JitRuntime::allocateIonOsrTempData
. NI myself to see if this is hitting an unexpected perf cliff.
This seems to be caused by generators because we can enter Ion/Warp only with OSR. We should fix that at some point.
Short-term, we can fix JitRuntime::allocateIonOsrTempData
to reuse the previous buffer if it's big enough. That gets rid of millions of free/malloc calls here.
Reporter | ||
Comment 4•4 months ago
•
|
||
21% improvement from patches in bug 1874179 !
Without : https://share.firefox.dev/4aWZYlo (29s)
With: https://share.firefox.dev/3RQkETc (23s)
Reporter | ||
Comment 5•4 months ago
•
|
||
Profile with (In reply to Mayank Bansal from comment #1)
If you disable the turbocompiler* in the demo and then run the demos, the results are maybe more interesting -code runs 100% in ion, but is slower than Chrome
Nightly: https://share.firefox.dev/4aqLTwc (2m 24s with the profiler, 2m without the profiler)
Chrome: https://share.firefox.dev/3RL0riG (1m 17s)*You can disable the compiler thusly : menu bar at top ->advanced-> Check the "Disable Compiler" ->Save settings in project-> rerun the demo
New profile : https://share.firefox.dev/3Sgupuj (1m15s)
Chrome: https://share.firefox.dev/4aX0DTU (1m8s)
Jan: Anything interesting in the "turbocompiler disabled" version?
Comment 6•4 months ago
|
||
(In reply to Mayank Bansal from comment #5)
Jan: Anything interesting in the "turbocompiler disabled" version?
I don't see anything very obvious. Some time for megamorphic has-prop. Most time is just running JIT code.
Description
•