Ahh, thanks. Okay I see the other leaks with this toolbar. I still don't see the leaks in IE6 though. There are a few other places that we need to null out some orphaned node references. Couple in Sizzle and a couple in offset. Should have a patch soon. -- Brandon Aaron
On Wed, Apr 22, 2009 at 1:48 PM, pete higgins <phigg...@gmail.com> wrote: > > We stumbled upon this: > > http://blogs.msdn.com/gpde/pages/javascript-memory-leak-detector.aspx > > It seems to be reporting the same type information Drip is. I cannot > attest to it's accuracy, but it claims as of trunk (it is still in > svn, right?) [6319] I see "leaked" elements listed: > > <div> > <script> > <div> > + <a> > <html> > + <div> > > (the + is to indicate [i presume] the leaked node is within some other > node?) > > My testcase is: > > <html><head> > <script src="jquery.min.js"></script><title>yo</title> > </head> > <body><h1>hi</h1></body></html> > > Prior to svn up'ing just now, It was leaking the "full list" the original > post. > > Also, unless I'm missing something, I am seeing 91 IE6 unit tests > failures in tests/ > > Regards, > Peter > > On Wed, Apr 22, 2009 at 12:32 PM, Danny Tuppeny <danny.tupp...@gmail.com> > wrote: > > > > Thanks for the response Henry. I was wondering myself if pseudo-leaks > > were being misreported, but I didn't get chance today to test this > > outside of Drip. > > > > I'll see if I can reproduce this outside Drip using TaskManager and if > > I can still reproduce, I'll post a new thread with a test case and > > more details. > > > > > > > > > > On Apr 22, 1:47 pm, Henry <rcornf...@raindrop.co.uk> wrote: > >> On Apr 22, 9:01 am, Danny Tuppeny wrote: > >> > >> > >> > >> > >> > >> > Here's a small sample page that seems to leak in the same > >> > way as jQuery: > >> > >> > <html><head><script type="text/javascript"> > >> > function leakMe() { > >> > var div = document.createElement("div"); > >> > document.body.appendChild(div); > >> > document.body.removeChild(div);} > >> > >> > </script></head><body onload="leakMe();"></body></html> > >> > >> > The docs for Drip say that removeChild is just a psuedo-leak > >> > and will be cleaned up when the page is unloaded, but that > >> > doesn't happen. If you set the above page to Auto-refresh > >> > in Drip, memory usage just goes up and up forever. If you > >> > can find a way to stop that happening in the small sample, > >> > I suspect fixing jQuery will be easy. > >> > >> There is a problem here but I suspect that problem is with Drip and > >> not IE or JQuerry (there may be problems with IE and/or JQuery but if > >> so they are not being demonstrated here). > >> > >> Starting with the following more extreme example of the - appendChild > >> -, - removeChild - sequence; appending 100,000 DIVs, stopping with an > >> - alert - (to give the opportunity for garbage collection to run and > >> memory use to be examined), removing all of those DIVs from the DOM, > >> stopping again, and then repeating/looping the process, should, if the > >> memory leak issue exists (in relation to - removeChild - use) result > >> in ever increasing memory consumption, which should be noticeable > >> using crude examination techniques (such as reading the iexplorer > >> process's "Mem Usage" in Task Manage) due to the number of DIVs > >> created. However, using this test page:- > >> > >> <html> > >> <head> > >> <title></title> > >> <style type="text/css"> > >> </style> > >> </head> > >> <body> > >> <script type='text/javascript'> > >> function createDivs(){ > >> var div; > >> for(var c = 0;c < 100000;++c){ > >> div = document.createElement('DIV'); > >> document.body.appendChild(div); > >> } > >> alert('Divs set'); > >> setTimeout(clearDom, 3000); > >> > >> } > >> > >> window.onload = createDivs; > >> > >> function clearDom(){ > >> while(document.body.lastChild){ > >> document.body.removeChild(document.body.lastChild); > >> } > >> alert('Divs cleared'); > >> setTimeout(createDivs, 3000);} > >> > >> </script> > >> </body> > >> </html> > >> > >> (The 3 second delay between function calls is to give you time to > >> close the browser when enough has been seen) > >> > >> - running in IE 6 (on XP) gives an oscillating (by about 9 megabytes) > >> "Mem Usage", with no overall accumulation of memory consumption as the > >> script continues to add and remove DIVs, and running in IE 8 (on XP) > >> showed the memory use increase with the first addition and then stay > >> at about that level. What I did not observe at all was any steady > >> increase in memory use, as would be expected if a memory leak issue > >> existed here. > >> > >> This suggests that IE's garbage collection is successfully dealing > >> with this situation without even getting to the point where re-loading > >> the page is significant. > >> > >> On the other hand, running the same code in Drip (with the number of > >> DIVs created reduced to 10,000 because Drip slows the script down > >> considerably) showed a steady increase in memory consumption. > >> Consuming more each time the DIV addition-removal cycle was executed. > >> > >> This would lead me to conclude that:- > >> > >> 1. The rumours of issues relating to the use of - removeChild - are > >> unsubstantiated and so should be ignored. If they do relate to a > >> memory leaking cause and effect relationship then the - removeChild - > >> use is not (in isolation, or directly) the cause of whatever effect is > >> being observed. > >> > >> 2. Drip should not be regarded as a definitive indicator of memory > >> leak issues as it appears to directly provoke some of the issues it > >> attempts to report. > >> > >> 3. Any supposed memory leak issues with JQuery should be demonstrated > >> in isolation else time and (script) performance could be squandered > >> attempting to 'fix' non-issues.- Hide quoted text - > >> > >> - Show quoted text - > > > > > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "jQuery Development" group. To post to this group, send email to jquery-dev@googlegroups.com To unsubscribe from this group, send email to jquery-dev+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/jquery-dev?hl=en -~----------~----~----~----~------~----~------~--~---