Jens, 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. If you run in the test shell with the --js-flags="--expose-gc" flag, you can force gc's by typing javascript:gc() in the URL bar repeatedly. I can easily imagine that there are cycles between JS and C++ that keep DOM objects alive. I would like to see the reduced test case when you have it.
Thanks, -- Mads On Wed, Sep 23, 2009 at 12:28 AM, Mike Belshe <[email protected]> wrote: > Because we have C++ and JS wrappers, and there may be references known to > the C++ side not known to the JS side, we have to do an "object grouping" > before we can call GC. This grouping takes all wrappers and groups them by > their root; and then they are collected together. This happens > in V8GCController::gcPrologue(). So you might fint that an interesting place > to look. > Mike > > On Tue, Sep 22, 2009 at 3:21 PM, Jens Alfke <[email protected]> wrote: >> >> >> On Sep 22, 2009, at 2:54 PM, Mikhail Naganov wrote: >> >> > I'm working on showing JS objects retainers. But this only works for >> > objects that live inside V8's heap. >> >> That would still be useful — I'd love to be able to look at all the >> 'Window' objects in the heap and what ref chain is keeping them alive. >> >> Please let me know if there's something experimental I can try out. >> Thanks! >> >> —Jens >> >> >> > > > > > --~--~---------~--~----~------------~-------~--~----~ Chromium Developers mailing list: [email protected] View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~----------~----~----~----~------~----~------~--~---
