Thanks Adrian On Mon, Mar 23, 2009 at 1:55 PM, Adrian Williams <adri...@familytreedna.com>wrote:
> Hi Wesley, > > We work with ADG's extensively including some intense custom renderers > and have had horrible problems with memory leaks. Turns out, there are > known problems with the ADG's internal renderers leaking like a sieve. And > as an experiment, we setup a custom renderer that simply returned .this and > it leaked like crazy. We have a fairly large ADG (100+ columns) and every > time we'd scroll right to see more columns, more renderers would be created > in addition to the one's already present...and scrolling back left would > recreate them again instead of using the one's that had already been > created...at one point, we had several hundred instances of renderers > running for a single grid. Insanity! And, because the ADG and the DG are > maintained by two separate teams at Adobe, one is not related to the other > and in this case, the DG does not have the same leaks as the ADG. > > In the end, we had to write a serious piece of code to manage our > renderers, which finally rid us of the leaks we were encountering. I've > been working on trying to encapsulate our logic so I can post it here as I > know a lot of other folks have run into the same problems and could probably > use the help. > > Best, > Adrian > > Wesley Acheson wrote: > > I've wasted most of the day trying to figure out why my application was > leaking memory. > > I was dynamically adding and removing columns from the AdvancedDataGrid. I > noticed that it was slowing down a lot. I naturally assumed that it was my > custom item renderer and even after reading Alex's blog entry about using > the profiler I couldn't figure out what was holding references to my item > renderer. > > Anyway the error continued to happen after I commented out all the code in > my item renderer. I even changed it to subclass > AdvancedDataGridItemRenderer, still no joy. So I removed the custom item > renderer and noticed that instead of my ItemRenderer the ADG didn't remove > references to its own item renderer. > > Anyway I changed to a standard DataGrid and all worked correctly. The > references were removed when garbage collection occurred I had to change my > code a bit. > > This isn't really a question more of a complaint really. I don't know if > it was my code or just a problem with the ADG though I suspect the latter. > > A couple of things I noticed with the standard DG. Firstly if setting the > itemrenderer on the DG itself it also uses the same ItemRenderer on the > header rows. Is this correct behaviour. Setting the ItemRenderer on the > column seems to keep the normal header renderer. This I admit has me > confused is this the way its supposed to work? How would I set all the > cells to a custom IR and leave the headers alone? It seems inconsistent. > > I have read the excellent Articles on Alex's blog. > > Anyway that's all. > > Regards, > > Wes > > > > >