Open Bug 1954338 Opened 1 month ago Updated 27 days ago

With >2 parallel marking threads, the promise-heavy testcase from Bug 1949221 gets 30% slower

Categories

(Core :: JavaScript: GC, task)

task

Tracking

()

People

(Reporter: mayankleoboy1, Unassigned, NeedInfo)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

Create fresh Nightly profile
Open attached testcase (third testcase from bug 1949221)
Enter N=5000000
Click on "Generate Promises"

2 threads (Default): https://share.firefox.dev/4hdNE1V (7.6s)
4 threads: https://share.firefox.dev/4iyN3ZP (9.2s)
8 threads: https://share.firefox.dev/4itjNna (9.7s)

Observations: Each GCMajor takes 1.5x the time in the 8-thread case compared to 2-thread case. Lots of lock contention/waiting for allocator??

Similar slowndown for "resolve" and "reject" cases too.
maybe something to improve?

Flags: needinfo?(jcoppeard)

Profiles with Samply:

2 threads (default): https://share.firefox.dev/42eaUaG (7.6s)
8 threads: https://share.firefox.dev/41T6pDp (8.7s)

Gecko profiler
8 threads: https://share.firefox.dev/449JXY6 (9.2s)

So there is a slowdown, but about 15%.

Florian/Canova:
Profiles in comment 1 show a difference in runtime between the gecko profiler and Samply. Gecko profiler shows runtime of 9.2s, whereas Samply shows a runtime of 8.7s

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: