Open Bug 1385919 Opened 7 years ago Updated 2 years ago

Investigate using multiple threads for background sweeping

Categories

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

55 Branch
enhancement

Tracking

()

People

(Reporter: jonco, Unassigned)

References

Details

This could help in cases where GC currently can't keep up with the allocation rate, e.g. bug 1375566.
When we implement this we should compare it with lazy sweeping (in addition to background & parallel sweeping).  They'll share some implementation details too.

So I'd like to see:
   background sweeping (what we have now)
   background+parallel sweeping (this bug)
   background+lazy sweeping
   background+parallel+lazy sweeping.

And understand which works best for us.

I think one of the insights here is that if a certain AllocKind is seeing a high allocation rate, and many GC events, you don't need to sweep the blocks for other AllocKinds to keep up with the mutator.  So an additional change (to build on top of lazy sweeping) is to immediately begin a new collection if there are no more blocks of that AllocKind to sweep.
Priority: -- → P3
Assignee: nobody → pbone
Depends on: 1417380
Assignee: pbone → nobody
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.