Add a "GC Exclusion" mode which suppresses expensive GCs

RESOLVED DUPLICATE of bug 1351790

Status

()

P3
normal
RESOLVED DUPLICATE of bug 1351790
a year ago
3 months ago

People

(Reporter: djvj, Unassigned)

Tracking

(Blocks: 2 bugs, {perf})

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [qf:f61][qf:p1])

(Reporter)

Description

a year ago
Add a mode to the GC that suppresses (or at least heavily discourages) expensive GCs until the mode is over.

This mode should be used by Gecko for short-lived UX-sensitive operations where we don't want to introduce jank.
(Reporter)

Updated

a year ago
Whiteboard: [qf]
Whiteboard: [qf] → [qf:p1]
Blocks: 1352524
I'm assuming that this will function as another input into a GC scheduler rather than completely suppressing GCs.

Comment 2

a year ago
I think the use case here is indeed completely suppressing GC, but the implementation can certainly happen though an input to the scheduler (although I admit that I haven't been able to keep up with the GC scheduler proposals so I don't know to what extent that idea is practical!)
(In reply to :Ehsan Akhgari (needinfo please, extremely long backlog) from comment #2)
I'm not keen on the idea of suppressing GC entirely for arbitrary lengths of time because this can lead to OOM.  I'd rather see something that increased the GC thresholds by a configurable factor, maybe as much as a factor of 2.  This would effectively prevent GC in all but the most dire situation.

Do we have a list of places in the browser that this would be used?
(In reply to Jon Coppeard (:jonco) from comment #3)

> Do we have a list of places in the browser that this would be used?

I would like to suppress GCs while opening a new tab or opening a new window (I saw profiles with GCs causing jank in the tab open animation, and delays before first-paint of new windows). But indeed, completely suppressing the GC may not be the best behavior if we do happen to already have plenty of tabs/windows and to lack available memory.

Comment 6

11 months ago
Moving this to P2 for post 57 work.
Whiteboard: [qf:p1] → [qf:p2]
Whiteboard: [qf:p2] → [qf:p1]

Updated

9 months ago
Whiteboard: [qf:p1] → [qf:i60][qf:p1]

Updated

8 months ago
Whiteboard: [qf:i60][qf:p1] → [qf:f60][qf:p1]

Updated

6 months ago
Whiteboard: [qf:f60][qf:p1] → [qf:f61][qf:p1]
Priority: -- → P3
(Reporter)

Comment 7

3 months ago
This is really a dup.  Both this bug and the other one are about preventing expensive GCs when certain "critical UX" activity is happening, so as the reduce user-perceived jank.  The other one is assigned, so it gets priority.
Status: NEW → RESOLVED
Last Resolved: 3 months ago
Resolution: --- → DUPLICATE
Duplicate of bug: 1351790
You need to log in before you can comment on or make changes to this bug.