[Webkit-unassigned] [Bug 12900] Page tear-down forces garbage collection once per frame

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Mar 1 08:47:02 PST 2007


------- Comment #2 from ggaren at apple.com  2007-03-01 08:46 PDT -------
I realized that a very simple way to fix this would be to schedule manual GC on
a single zero-delay timer. That way, multiple manual GCs would coalesce. This
would have the fortunate side-effect of doing GC when the stack was very small,
reducing false positives in the conservative marking algorithm, and generally
reducing marking overhead.

I tried this and it reduced the number of GCs during the PLT by 2/3. In the
PLT, that didn't affect performance one way or the other. I suspect that's
because there are very few live objects in the PLT when we GC.

In the pathological case of closing a tab containing many frames while many
other JS-heavy tabs were open, I bet this would help a lot.

Not a priority right now, though, since it doesn't help page load performance.

(Sorry, but I lost the patch. It just changed Collector::collect() calls in
WebCore to KJSProxy::garbageCollectSoon() calls. It implemented
garbageCollectSoon() with GarbageCollectTimer : public TimerBase, that
implemented fire() as Collector::collect().)

Configure bugmail: http://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

More information about the webkit-unassigned mailing list