[meta] Stop doing full GCs

NEW
Unassigned

Status

()

Core
JavaScript: GC
P2
normal
11 months ago
15 days ago

People

(Reporter: billm, Unassigned)

Tracking

(Depends on: 5 bugs, Blocks: 1 bug)

unspecified
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox57 affected)

Details

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.

Updated

11 months ago
Depends on: 1376901

Comment 3

11 months ago
1376557 will reduce (but probably not remove) ALLOC_TRIGGER non-incremental GCs
Depends on: 1376557

Comment 4

11 months ago
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.

Updated

11 months ago
Depends on: 1377466

Updated

11 months ago
Depends on: 1288177

Updated

11 months ago
Depends on: 1377914

Updated

9 months ago
Blocks: 1351781
status-firefox57: --- → affected
Priority: -- → P2

Updated

8 months ago
Depends on: 1400278

Comment 6

8 months ago
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
You need to log in before you can comment on or make changes to this bug.