JS demo (https://www.fxhash.xyz/generative/slug/ascii-dun-gen ) is a lot slower in Nightly compared with Chrome
Categories
(Core :: JavaScript Engine, task, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox111 | --- | fixed |
People
(Reporter: mayankleoboy1, Assigned: anba)
References
(Blocks 1 open bug)
Details
Attachments
(3 files)
Go to https://www.fxhash.xyz/generative/slug/ascii-dun-gen
Click on the "Open" button. This will open the demo in a new tab
Change the Map size to 200
Ensure that the type of map is "Dungeon" (in the first drop down menu)
Click on generate
Nightly: https://share.firefox.dev/3iE6hnr
Chrome: https://share.firefox.dev/3W9vVOz
Reporter | ||
Comment 1•2 years ago
|
||
Here is a profile with dungeon size as 500 : https://share.firefox.dev/3CNeXyG
Reporter | ||
Updated•2 years ago
|
Comment 2•2 years ago
|
||
This is spending a lot of time under Ion's LessThan
IC's slow path. My best guess is they're doing something weird, for example one side is undefined
, but I'll take a look. It might be easy to support in CacheIR.
Assignee | ||
Comment 3•2 years ago
|
||
I can upload some patches from last year which add support for Number/Int32/Boolean against Null/Undefined relational comparison. I've initially created them for IC failures in JetStream, but I didn't observe much real-world usage, so I never uploaded them for review:
Comment 4•2 years ago
|
||
I added some logging to IonCompareIC::update
and I only see hits for undefined < undefined
... Do your patches handle that case too? JS code doing this is pretty broken, but if we can easily support this in the CacheIR generator it might not be too bad.
Assignee | ||
Comment 5•2 years ago
|
||
No, Undefined x Undefined isn't supported by my patches, but it shouldn't be too hard to support it, too.
It's actually supported.
Updated•2 years ago
|
Assignee | ||
Comment 6•2 years ago
|
||
Move the functions in preparation for part two.
Updated•2 years ago
|
Assignee | ||
Comment 7•2 years ago
|
||
Depends on D167131
Assignee | ||
Comment 8•2 years ago
|
||
Instead emit a normal CompareDoubleResult
instruction and for hot code let
GVN optimise the instruction to a constant.
Depends on D167132
Comment 10•2 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/a889cd33c920
https://hg.mozilla.org/mozilla-central/rev/098909b3b7ae
https://hg.mozilla.org/mozilla-central/rev/869a971a4902
Reporter | ||
Comment 11•2 years ago
|
||
Profile from latest Nightly: https://share.firefox.dev/3wd3QLV
In my highly scientific testing of 2 samples, Nightly is comparable to Chrome now.
Description
•