Open Bug 1376904 Opened 8 years ago Updated 3 years ago

[meta] Stop doing full GCs

Categories

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

enhancement

Tracking

()

Tracking Status
firefox57 --- affected

People

(Reporter: billm, Unassigned)

References

(Depends on 3 open bugs, Blocks 1 open bug)

Details

(Keywords: meta)

We should stop doing GCs where we have to collect every zone. Bug 1285355 was a blocker for this, but it's fixed now.
Here is the list of full GCs sorted by frequency. I filed bugs for the first two: [(u'FULL_GC_TIMER', 2887), (u'PAGE_HIDE', 1197), (u'USER_INACTIVE', 1134), (u'CC_WAITING', 935), (u'TOO_MUCH_MALLOC', 355), (u'CC_FORCED', 206), (u'LOAD_END', 192), (u'ALLOC_TRIGGER', 144), (u'API', 26), (u'MEM_PRESSURE', 17), (u'INTER_SLICE_GC', 13), (u'SET_DOC_SHELL', 13), (u'NSJSCONTEXT_DESTROY', 5), (u'COMPARTMENT_REVIVED', 1)]
Note that this includes the case where we only have, say, a couple of zones and we happen to collect them all. For instance, a user with only one tab open may end up with everything as a "full GC". CC_WAITING, number 4 on the list, never explicitly triggers a full GC.
Depends on: 1376901
1376557 will reduce (but probably not remove) ALLOC_TRIGGER non-incremental GCs
Depends on: 1376557
Nevermind, I'm wrong.
No longer depends on: 1376557
This bug is about whether we collect every zone in a collection, not whether we are incremental or not.
Depends on: 1377466
Depends on: 1288177
Depends on: 1377914
Blocks: 1351781
Priority: -- → P2
Depends on: 1400278
We generally use 'full GC' to mean a GC that collects all zones vs. a 'zone GC' that only collects some zones.
Summary: [meta] Stop doing non-zone GCs → [meta] Stop doing full GCs
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.