Open Bug 1902347 Opened 6 months ago Updated 18 days ago

[JetStream3] Doxbee tests are very slow

Categories

(Core :: JavaScript Engine, task, P2)

task

Tracking

()

People

(Reporter: iain, Unassigned)

References

(Depends on 1 open bug)

Details

(NOTE: These tests are still private, and we should avoid sharing these links in public channels.)

The doxbee subtests Apple is proposing to add in Jetstream 3 run into major performance cliffs on Firefox. It looks like the CC and CallbackObjects are involved.

Run Doxbee-async (Profile)
Run Doxbee-promise (Profile)

It doesn't look like the time is the CC per se. It looks like the test must be allocating a ton of CallbackObjects which end up spending a lot of time registering themselves as GC/CC roots under HoldJSObjects.

The second profile is pretty dramatic, where the orange spikes for the GC keep getting longer and longer. It also looks like the GC is spending an increasing amount of time tracing those callback objects.

(In reply to Andrew McCreight [:mccr8] from comment #1)

It doesn't look like the time is the CC per se. It looks like the test must be allocating a ton of CallbackObjects which end up spending a lot of time registering themselves as GC/CC roots under HoldJSObjects.

The second profile is pretty dramatic, where the orange spikes for the GC keep getting longer and longer. It also looks like the GC is spending an increasing amount of time tracing those callback objects.

It looks like the CC is never getting kicked off by the GCs. I notice that the "perform microtasks" marker extends throughout that time region, and it only manages to CC after the microtask queue is finally drained. I'm wondering if the CC isn't getting a chance to get scheduled, which means cycles don't get collected and accumulate garbage, which lengthens the GCs.

Depends on: 1903034

The patch in bug 1903034 greatly reduces our GC time and increases our doxbee-async score by 30% and our doxbee-promise score by 50%. We are still a very long way off Chrome however.

Opening this up, since the repo is now publicly accessible.

Group: mozilla-employee-confidential
You need to log in before you can comment on or make changes to this bug.