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="&lt;" click="previous_Click()"/>
>             <mx:Button label="&gt;" 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
>


Reply via email to