So I have an app in production which after 10 minutes of usage began to perform EXTREMELY slow, and users had to restart the app. (Flex 3) Windows and Mac...all browsers. I did some Profiling and did not get far. Whenever I take a Memory Snapshot, gc() is forced and all my objects are correctly removed from memory. So why are they not gc()'d in normal runtime?? I know gc() only runs when new memory is requested and nothing is being drawn/rendered. Both seem to be OK on my side.
I have read extensively all the blogs and Adobe docs regarding this issue, including the event listener for ENTER_FRAME which calls System.gc() twice. (http://www.craftymind.com/2008/04/09/kick- starting-the-garbage-collector-in-actionscript-3-with-air/). This unfortunately did not work for me. To simplify, I created a simple app that adds and removes RichText fields. if I create 50 of them, then remove them all, then Add one back, that *should* force a gc() but it does not. The FF memory always stays high. I noticed in IE, minimizing the browser window causes a gc() and my memory drops to a much lower #. Has anyone seen or come across this? B/c of this issue, we're pretty much going to lose our customers and try to wing a html/ajax app ASAP..so I'm scrambling to resolve this. Thanks in advance for any help. <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()" layout="vertical" > <mx:Script> <![CDATA[ import mx.controls.RichTextEditor; private function removeit():void { this.removeChildAt(2); } private function doit():void { var rte : RichTextEditor = new RichTextEditor(); rte.width=300; rte.height=150; this.addChild(rte); } ]]> </mx:Script> <mx:Button click="doit()" label="Add"/> <mx:Button click="removeit()" label="Remove"/> </mx:Application>

