4 ms·
I work on the cycle collector. The basic idea of a cycle collector is to trace through suspicious objects to find ones that can be freed. If you can tell that
by mccr8 14y ago
I work on the cycle collector. The basic idea of a cycle collector is to trace through suspicious objects to find ones that can be freed. If you can tell that an object is alive, then you don't need to trace through it. There was already some support for this (if a DOM object is in a document being displayed, it must be alive), but we've added support for many other common cases (for instance, if a JS object is reachable from a DOM object that is in a document that is currently being displayed, it and all JS objects reachable from it must be alive).
This is mostly a process of logging what the cycle collector is looking at, then trying to figure out if there are reasons why particular objects are always alive that we could take advantage of. The most common cases have been taken care of in Firefox 12 and 13, so we're left with a variety of little cases. This results in exciting bugs with names like "unmark gray objects held alive by nsXBLDocGlobalObject of skippable nsXBLDocumentInfo" ( https://bugzil.la/735550 https://bugzil.la/735550 ).
The bug grayrest linked to has a good list of them, as well as one of its subbugs ( https://bugzil.la/716598 https://bugzil.la/716598 ).
- AshleysBrain 14y agoThanks for the info!