Open Bug 716598 Opened 8 years ago Updated 6 years ago

[meta] Don't add obviously live objects to the cycle collector graph

Categories

(Core :: XPCOM, defect)

defect
Not set

Tracking

()

People

(Reporter: mccr8, Unassigned)

References

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

Details

(Keywords: meta)

If we can tell an object is currently live, then we don't need to add it to the cycle collector graph. The most common instance of this is documents that are currently being displayed. Another example is C++ objects being held alive by marked JS objects. There are also many objects where we can quickly check if they are being held alive by other objects that are obviously alive. Skipping these objects will reduce the size of the cycle collector graph, and avoid traversing their child nodes.  There is a danger of introducing transient leaks that don't show up at shutdown.

Smaug has done a lot of these small patches, and I think it makes sense to gather them together.  Sorry for the bug spam.
Component: XPConnect → XPCOM
QA Contact: xpconnect → xpcom
Keywords: meta
Whiteboard: [Snappy]
Depends on: 702609, 702452, 712170, 714830
Bug 705371 is more not adding obviously acyclic objects to the graph rather than obviously live, but close enough.
Depends on: 716106, 708322, 705371
Depends on: 717500
Depends on: 717557
Depends on: 718340
Depends on: 722715
Depends on: 725804, 725752, 725768
Depends on: 725447, 725446
Depends on: 725867
Depends on: 726331
Depends on: 726340
No longer depends on: 726331, 726340
Meta bug, doesn't really need a Snappy tag.
Whiteboard: [Snappy]
Depends on: 735342
Depends on: 735504
Depends on: 735550
Depends on: 736563
Depends on: 736763
Depends on: 737060
Depends on: 737075
Depends on: 740185
Depends on: 743199
No longer blocks: 698919
Blocks: 698919
Depends on: 764899
Depends on: 785493
Depends on: 829784
Depends on: 831360
Depends on: 835544
Depends on: 848827
Depends on: 950205
Depends on: 741760
Depends on: 952872
You need to log in before you can comment on or make changes to this bug.