On Sep 23, 2009, at 12:32 AM, Mads Sig Ager wrote: > another thing you should be aware of is that DOM nodes are only > collected on full garbage collections. In order to see what is > actually live at the end of a test, you have to force a number of GCs.
But the GC should happen automatically after the tab's been idle for a little while, shouldn't it? I've left the tab open for several minutes and seen only minor reductions in memory use. The specific issue I'm tracking down seems to be triggered by opening child windows, i.e. a single renderer with multiple tabs. It looks as though closing any of the child tabs doesn't trigger a full GC; does this seem like a good thing to add? Here's the reduced test case I'm using: --~--~---------~--~----~------------~-------~--~----~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~----------~----~----~----~------~----~------~--~---Title: Open Windows In Same Process
This tests opening multiple child windows in the same renderer process. It's similar to the membuster test, at a much smaller scale, and without the automation. To run it, simply click the links below in sequence, waiting for the other tab to finish loading its page between clicks.
What I currently see is that memory usage goes up higher than it should, and doesn't come down after closing the second tab. In memory, multiple DOMWindow objects are hanging around, likely because of reference loops between WebCore and V8. In support of this theory, disabling JS entirely makes the problem go away.
--Jens Alfke, Sept. 2009
—Jens