I'm aware that when useVirtualLayout=false, no recycling takes place because a new itemrenderer is created for each item to display.
My question is this:
let's say I make a request to the server and get 20 items, bind them to the dataProvider, and 20 itemrenderers get created.
What happens when after that I make a new request to the server and return a different 20 items and bind them to the dataProvider? Does this mean that I now have 40 item renderers taking up memory, or are the old 20 item renderers destroyed since I re-bound the dataProvider to the new result?
If you have useVirtualLayout=false, you are not using an itemRendererFunction, and you change the dataProvider then the DataGroup should try to reuse the existing item renderers and only create new renderers when necessary.
See this bug for more details: http://bugs.adobe.com/jira/browse/SDK-23228
Note: If you are using an itemRendererFunction then beware of this Flex 4.0 release bug: http://bugs.adobe.com/jira/browse/SDK-25412. It should be fixed in Flex 4.1.
Note: Here is an example of itemRendererFunction and a description of how you can still have virtual layout without recycling renderers: