We have a known bug filed that there are some GC issues with IE 7. I don't have any workarounds unfortunately, you can try a brute force GC by doing something like this:
try { var lc1:LocalConnection = new LocalConnection(); var lc2:LocalConnection = new LocalConnection(); lc1.connect('name'); lc2.connect('name'); } catch (e:Error) {} Matt --- In flexcoders@yahoogroups.com, "One Person" <[EMAIL PROTECTED]> wrote: > > Description: > We are creating a web-app built with Flex 2. > This app uses some very large image files (From around 256K to over > 600K) > We have an image viewer section of our Flex app that will allow the > user to move from one image to another. > I was noticing that with our app in IE7 that memory useage would > climb each time we grabbed a new image but even after letting it set > for several minutes the memory usage would not go down. It was acting > as if Garbage Collection was not getting called. So I added all kinds > of code to make sure that we were letting go of the previous images > to allow Garbage Collection to work. > > After 3 days of trying to track down the problem I decided to create > a smaller Flex app that only used our image viewer control to limit > the number of variables in the problem. After a few hours I still > could not figure out the problem so I replace our image view with a > standard <mx:Image> tag. The problem still existed after doing this. > Having take our code out of the picutre I decided to compare results > in FireFox. FireFox would Garbage Collect fairly quickly and the > problem did not seem to exist using my test Flex app in FireFox. > > From what I can tell, IE7 and Flash (version 9.0.28.0) do not seem to > work well at allowing Garbage Collection to work. > I have the same version of Flash installed in FireFox 2.0.0.2 and > there does not seem to be any problem there. > > The code below is what I used in my mxml file. To test it you will > need to point to some kind of large images that you have access to. > The images that I was using are on an internal network and so are > unavailable to anyone on the outside. > > <?xml version="1.0" encoding="utf-8"?> > <mx:Application > layout="absolute" > xmlns:mx="http://www.adobe.com/2006/mxml" > initialize="init()" > > > <mx:Script> > <![CDATA[ > > public var urls:Array = new Array(); > public var index:int = 0; > [Bindable] public var tempUrl:String; > > private function init() : void > { > urls.push( "http://10.7.2.8/07026/07026_00115.jpg" ); > urls.push( "http://10.7.2.8/07026/07026_00116.jpg" ); > urls.push( "http://10.7.2.8/07026/07026_00117.jpg" ); > urls.push( "http://10.7.2.8/07026/07026_00118.jpg" ); > urls.push( "http://10.7.2.8/07026/07026_00119.jpg" ); > urls.push( "http://10.7.2.8/07751/07751_00473.jpg" ); > urls.push( "http://10.7.2.8/07751/07751_00474.jpg" ); > urls.push( "http://10.7.2.8/07751/07751_00475.jpg" ); > urls.push( "http://10.7.2.8/07751/07751_00476.jpg" ); > urls.push( "http://10.7.2.8/07751/07751_00477.jpg" ); > urls.push( "http://10.7.2.8/07751/07751_00478.jpg" ); > urls.push( "http://10.7.2.8/07751/07751_00479.jpg" ); > urls.push( "http://10.7.2.8/42401/42401_00000000.JPG" ); > urls.push( "http://10.7.2.8/42401/42401_00000002.JPG" ); > urls.push( "http://10.7.2.8/42401/42401_00000003.JPG" ); > urls.push( "http://10.7.2.8/42401/42401_00000004.JPG" ); > urls.push( "http://10.7.2.8/42401/42401_00000005.JPG" ); > urls.push( "http://10.7.2.8/42401/42401_00000006.JPG" ); > urls.push( "http://10.7.2.8/42401/42401_00000007.JPG" ); > urls.push( "http://10.7.2.8/42401/42401_00000008.JPG" ); > index = 0; > setCurrentIndex(); > } > > private function setCurrentIndex() : void > { > img.source = urls[index]; > } > > private function previous_Click() : void > { > if( --index < 0 ) > { > index = urls.length-1; > } > > setCurrentIndex(); > } > > private function next_Click() : void > { > if( ++index >= urls.length ) > { > index = 0; > } > > setCurrentIndex(); > } > ]]> > </mx:Script> > <mx:Grid width="100%" height="100%"> > <mx:GridRow width="100%" height="30"> > <mx:GridItem width="100%" height="100%"> > <mx:Button label="<" click="previous_Click()"/> > <mx:Button label=">" click="next_Click()"/> > </mx:GridItem> > </mx:GridRow> > <mx:GridRow width="100%" height="100%"> > <mx:GridItem width="100%" height="100%"> > <mx:Image id="img" source="{tempUrl}" width="100%" > height="100%"/> > </mx:GridItem> > </mx:GridRow> > </mx:Grid> > </mx:Application> > > I can't find a way to post my images so I hope this description is > good enough. > > In IE7 the memory would climb each time I would move to the next > image. On the left of this graph I loaded several images and then let > IE7 sit. After a few minutes, and memory staying where it was, I > continued click next to load images. Only after I hit a saturation > point (Around 2.5Meg) would it Garbage Collect. My machine has 2Gig > of Ram. > > The next rise in the graph is where I kept loading images over and > over until the memory usage was about the same as just before the > garbage collection happened the previous time. I let that sit for a > while and then tried to load one more image. That caused the garbage > collection to happen. > > The next 4 peaks in the graph are where I basicly clicked on the next > button over and over as fast as I could and the Garbage Collection > seemed to happen a little more often. > > In FireFox I ran similar tests of loading images and waiting in > FireFox. The Garbage Collection seems to be working fairly well here. > Each time I would load a new image the previous one would be cleaned > up with garbage collection. > > So I'm not sure what can be done or if there is a fix for this. I > really would LOVE to have access to the Garbage Collection in Flash > so I could force things to happen when I am dumping a real large > image. > > Thanks, > Mike Collins >