On Thu, Apr 8, 2010 at 11:41 AM, Can Gencer <cgen...@gmail.com> wrote: > I did my debugging like this.. > > I set up a url such as http://server/gc where if you would go there it > would call GC.Collect() and GC.WaitForPendingFinalizers() a few times > > Then did a few requests, and call the GC url and use windbg with > !dumpheap -stat and write down the number and size of the largest > objects. Do a few more requests, call the GC url again and use windbg > again with the stat, and then use !dumpheap -mt to get all instances > of the type that is growing in size most, and then randomly call > !gcroot on some to find where the reference is being held.
That's pretty much what I did as well. Most of the objects were strings, byte[]s, dictionary buckets - stuff that's used just about everywhere. Trying to get a meaningful set of !gcroot samples from amongst 125 000 dictionaries manually is a bit difficult :|. My hope is that somewhere in that list there is an object that leaks 1 instance per request, so that I can match it up with the number of requests, and work from it to figure out what's going on. - Jeff _______________________________________________ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com