Nuking wrappers is too slow

RESOLVED DUPLICATE of bug 816784

Status

()

Core
XPConnect
RESOLVED DUPLICATE of bug 816784
8 months ago
8 months ago

People

(Reporter: kmag, Unassigned)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [qf])

Nuking content windows is one of the biggest single chunks of overhead I see when profiling content scripts in tp5o tests, and nuking content script sandboxes just adds to it.

When we destroy a window with multiple frames, we wind up nuking the wrappers for each of them in separate operations. I suspect we could speed things up significantly by adding a timeout, and nuking the wrappers for all windows that are destroyed withing the timeout window in a single operation.

As a bonus, any windows or sandboxes that happen to be collected before the timeout elapses won't have to be nuked at all.

Alternatively, maybe we should just set a flag on the compartments and handle the nuking the first time we trace the wrapper table after we set it. Checking the flag might add a measurable bit of overhead to each GC, as opposed to once per compartment nuke, but it looks like a lot of the overhead is in the UncheckedUnwrap calls, which we already get for free when we're tracing the wrapper tables.
This sounds like a dupe of bug 816784. I think Ting is looking into it.
Ah, indeed. And good timing, too.
Status: NEW → RESOLVED
Last Resolved: 8 months ago
Resolution: --- → DUPLICATE
Duplicate of bug: 816784
You need to log in before you can comment on or make changes to this bug.