Open Bug 1416180 Opened 7 years ago Updated 1 year ago

Non-incremental GC spends a lot of time waiting for background threads to finish

Categories

(Core :: JavaScript: GC, enhancement, P3)

enhancement

Tracking

()

Tracking Status
firefox58 --- wontfix
firefox59 --- ?

People

(Reporter: jandem, Unassigned)

References

(Blocks 1 open bug)

Details

Noticed this on bug 1391710 - we allocate a lot so we switch to non-incremental GCs. This involves waiting for background threads to finish and this time shows up in profiles as being pretty significant. It would be nice if we could either stay incremental or optimized the waiting part somehow.
Paul, what do you think?
Flags: needinfo?(pbone)
Priority: -- → P3
We generally want to make all GCs incremental. This is gradual and we're attaching the most common causes on non-incremental GCs first. It depends exactly on what's happening in this case (I'll look next week). Jonco recently changed the behaviour with malloc memory thresholds. One of his goals was to reduce the likelyhood of a non-incremental GC due to a malloc memory threshold. However the accounting for malloc memory was also changed and we'd like to know if that bug caused a regression in this test case. I'm not sure about waiting for background tasks and what can be done. I suspect something can be done about background sweeping but I havn't investigated further. I'd prefer to work on doing fewer non-incremental GCs. But I'll take a look at the profile. I've also filed bug 1416541 for one potential improvment.
Assignee: nobody → pbone
Flags: needinfo?(pbone)
Status: NEW → ASSIGNED
Depends on: 1416541
Assignee: pbone → nobody
Status: ASSIGNED → NEW
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.