Closed Bug 827534 Opened 13 years ago Closed 8 years ago

Mark nsXBLDocumentInfo held by nsXULPrototypeCache black during GC

Categories

(Core :: XBL, defect)

defect
Not set
normal

Tracking

()

RESOLVED INCOMPLETE

People

(Reporter: mccr8, Assigned: mccr8)

References

Details

Attachments

(2 files)

The times are kind of all over the place, but the CleanupJS times are similar between these two, so they are probably comparable. The time added to the GC was 129us. Without patch: cc: MarkWindowList mediator took 410us cc: MarkWindowList watcher took 58us cc: AppShellService took 34us cc: xulCache took 1136us cc: CleanupJS took 1171us cc: TOTAL took 2855us With patch: cc: MarkWindowList mediator took 268us cc: MarkWindowList watcher took 76us cc: AppShellService took 45us cc: xulCache took 35us cc: CleanupJS took 1209us cc: TOTAL took 1679us As you can see, this knocks about 1ms off the time for nsCCUncollectableMarker::Observe.
Which phase of GC does this make slower? Can we ensure we're not making a slow GC phase even slower?
But yes, this is great :)
It is making gray marking slower, which does tend to be one of the slower phases. I'm not sure if a 0.129ms slower GC is worth the tradeoff for a 1ms fast CC cleanup. I could probably tweak it a bit (only looking at the globals instead of the protos too) and maybe that would make it faster.
Now that I think about it, mozilla::dom::TraceBlackJS is interesting because it isn't needed for correctness. Potentially we could shove it into its own slice, depending on how often this causes us to miss things.
Assignee: nobody → continuation
I took some fresh measurements here, and the XUL cache stuff was taking less than 100us so this seems less important now. I'm not sure why things are so much faster.
When getting the times it would be good to check few different cases, like the one having just couple of tabs or having lots of tabs. And then what happens when closing a "heavy" tab etc. (I'm still in process to get access to some games so we could check also how forget skippable behaves there)
Messagemanager unmarking is kind of guaranteed to take more time the more we have tabs. And looks like it is also a case to optimize for e10s/child-process.
This is probably okay for now...
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → WORKSFORME
Resolution: WORKSFORME → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: