[flexcoders] Re: Memory issues ... garbage collection only running in IE (not FF or Safari)

2008-10-29 Thread Claudiu Ursica
Here is how we manage collection when it comes to Araay collection.

We declare a custom class whic helds an instance of the array
collection and an array for fast searching. 

[Bindable]
public class FullGameHistorySuiteStatuses
{

private var _suiteStatusesArrayCollection : ArrayCollection = new
ArrayCollection();

private var _suiteStatusesArray : Array = new Array();  


when you add you check if item not already in there, if so just
update, otherwise add 

public function addSuiteStatus(suiteStatus :
FullGameHistroySuiteStatus) : void {

if (this._suiteStatusesArray[suiteStatus.id + _] == null)
{   this._suiteStatusesArray[suiteStatus.id + _] 
= suiteStatus;
this._suiteStatusesArrayCollection.addItem(suiteStatus);
}

else 
{
FullGameHistroySuiteStatus(this._suiteStatusesArray[suiteStatus.id +
_]).updateFullGameHistorySuiteStatus(suiteStatus);
}

}

Put in public getters/setters for props if needed

Now the item class

[Bindable]
public class FullGameHistroySuiteStatus
{

public var id : String;

private var _points : String;
private var _place : String;

//
===
// Constructor
//
===
public function FullGameHistroySuiteStatus(id : String)
{
this.id = id;
}


public function updateFullGameHistorySuiteStatus(suiteStatus :
FullGameHistroySuiteStatus) : void
{
   this._place = suiteStatus.place;
   this._points = suiteStatus.points;
}


This is code snippet extracted form the app, you need to adapt it to
your needs, however it works for us in eficienlyt managing collections
because arrays are very fast for searching while array collections
very good for bindings ...

HTH,
Claudiu

--- In flexcoders@yahoogroups.com, e_baggg [EMAIL PROTECTED] wrote:

 Thanks for the great advice so far...so what is the best way of 
 freeing Images for gc()? I have a DataGrid that has an itemRenderer 
 with a mx:Image/...if I have a dataProvider ArrayCollection (where 
 each records has a URL that the Image uses)...does simply setting the 
 dataProvider to null take care of marking the image for GC? And 
 anything I have a Bitmap for? Simply setting to null.
 
 Thanks again. 
 
 --- In flexcoders@yahoogroups.com, Alex Harui aharui@ wrote:
 
  If your app creates lots of stuff, you'll create a high-water mark 
 and GC won't run until you get back up near that high-water mark.  
 Images are known to easy ways to set that high-water mark pretty high.
  
  In general, the answer is to re-use instead of re-create, and only 
 create what you need when you need it.
  
  -Alex
  
  From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] 
 On Behalf Of Blake Barrett
  Sent: Tuesday, October 28, 2008 3:09 PM
  To: flexcoders@yahoogroups.com
  Subject: RE: [flexcoders] Memory issues ... garbage collection only 
 running in IE (not FF or Safari)
  
  e_baggg,
  You're not the only one. We're experiencing very similar 
 problems. Our app just keeps gobbling memory until the browser 
 crashes. We've had to resort to calling dispose() explicitly on every 
 mx:Image and bitmap we ever instantiate, and explicitly calling 
 removeAllChildren() on every contaniner before navigating away from 
 anything. Helps a little. I'm going to look in to the link you 
 mentioned. Maybe that will help us a little more than it has for you 
 (fingers crossed).
  
  Let us all know if you find anything else out.
  
  Blake
  
  
  From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] 
 On Behalf Of e_baggg
  Sent: Tuesday, October 28, 2008 2:51 PM
  To: flexcoders@yahoogroups.com
  Subject: [flexcoders] Memory issues ... garbage collection only 
 running in IE (not FF or Safari)
  
  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 

[flexcoders] Re: Memory issues ... garbage collection only running in IE (not FF or Safari)

2008-10-29 Thread andrii_olefirenko
i've tried your example and didn't notice any memory leakage. 
anyway, why do you need to create components and remove them, and
create again the same components? It looks like you made up an
artificial problem for yourself :)


--- In flexcoders@yahoogroups.com, e_baggg [EMAIL PROTECTED] wrote:

 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





[flexcoders] Re: Memory issues ... garbage collection only running in IE (not FF or Safari)

2008-10-29 Thread e_baggg
My original mxml was a bad example I guess. In my application, which 
is a Flex app that has its own windowing (exactly like Windows)...when 
I add and create Windows and close them, the browser CPU memory always 
increments (except for IE when I minimize the browswer window and 
memory is restored). When using System.totalMemory, I see some memory 
gets cleaned up but not all of it and if I open and close the same 
window multiple times, it is inconsistent to how much memory is given 
back to the Player, but either way it continually increments. I use 
weakReferences everywhere and call removeAllChildren() on the toplevel 
containers and set the viewComponent to null when removing the 
Mediator from the Facade (PureMvc). But yeah, when using Profiler, 
which forces a gc(), all memory is correctly restored back the player. 
Just not in runtime. The hunt continues...

--- In flexcoders@yahoogroups.com, andrii_olefirenko [EMAIL PROTECTED] 
wrote:

 i've tried your example and didn't notice any memory leakage. 
 anyway, why do you need to create components and remove them, and
 create again the same components? It looks like you made up an
 artificial problem for yourself :)
 
 
 --- In flexcoders@yahoogroups.com, e_baggg e_baggg@ wrote:
 
  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
 






[flexcoders] Re: Memory issues ... garbage collection only running in IE (not FF or Safari)

2008-10-29 Thread andrii_olefirenko
i still think that you could re-use window instances. After all, how
many windows a regular human being is capable to deal with at one time
- 7, 12,25? You just create a pool of instances and there will be
*zero* startup time for the window and *zero* memory increase.
Otherwise, you would need to create unlimited number of instances. 

When I was a little boy and programmed in Borland Delphi, I came up
with the same idea for my applications - and i think this approach is
still valid for Flex stuff :)

Flex components by design are not light. for example, they could be
references in static variables (i guess), which could prevent some
objects from garbage collecting. There are item renderers, they are
designed to be numerous, but even they, they are cached by components
like datagrid, list, etc.


--- In flexcoders@yahoogroups.com, e_baggg [EMAIL PROTECTED] wrote:

 My original mxml was a bad example I guess. In my application, which 
 is a Flex app that has its own windowing (exactly like Windows)...when 
 I add and create Windows and close them, the browser CPU memory always 
 increments (except for IE when I minimize the browswer window and 
 memory is restored). When using System.totalMemory, I see some memory 
 gets cleaned up but not all of it and if I open and close the same 
 window multiple times, it is inconsistent to how much memory is given 
 back to the Player, but either way it continually increments. I use 
 weakReferences everywhere and call removeAllChildren() on the toplevel 
 containers and set the viewComponent to null when removing the 
 Mediator from the Facade (PureMvc). But yeah, when using Profiler, 
 which forces a gc(), all memory is correctly restored back the player. 
 Just not in runtime. The hunt continues...
 
 --- In flexcoders@yahoogroups.com, andrii_olefirenko andriyo@ 
 wrote:
 
  i've tried your example and didn't notice any memory leakage. 
  anyway, why do you need to create components and remove them, and
  create again the same components? It looks like you made up an
  artificial problem for yourself :)
  
  
  --- In flexcoders@yahoogroups.com, e_baggg e_baggg@ wrote:
  
   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
  
 





RE: [flexcoders] Re: Memory issues ... garbage collection only running in IE (not FF or Safari)

2008-10-29 Thread Alex Harui
Setting Image to null is not good enough.  Call load(null) on the Image before 
removing it from the display list and releasing references to it.

GC() is not deterministic.  The only ways to test are to use the profiler, or 
run the app over thousands of actions and see if you eventually reach a stable 
number.

System.totalMemory does not measure memory used by the browser and OS to 
actually render things and the shrinks memory when minimized problem has been 
seen before and is under investigation by the player team.  Also, the 
debugger/profiler player can leak memory that isn't always shown in the 
profiler but may show up in System.totalMemory.

But, System.totalMemory is the high-water mark.  It is rare for pages to be 
released because of the way the player allocates memory, so it is always best 
not to create stuff that you don't need.

Also, make sure you're on the latest player 9.  The final test is to run your 
app over thousands of iterations on a release player with a release SWF and see 
if it eventually reaches a stable browser process memory number.  Using debug 
SWFs or debugger player in such a test will skew results.

From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of 
andrii_olefirenko
Sent: Wednesday, October 29, 2008 8:01 AM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Re: Memory issues ... garbage collection only running in 
IE (not FF or Safari)


i still think that you could re-use window instances. After all, how
many windows a regular human being is capable to deal with at one time
- 7, 12,25? You just create a pool of instances and there will be
*zero* startup time for the window and *zero* memory increase.
Otherwise, you would need to create unlimited number of instances.

When I was a little boy and programmed in Borland Delphi, I came up
with the same idea for my applications - and i think this approach is
still valid for Flex stuff :)

Flex components by design are not light. for example, they could be
references in static variables (i guess), which could prevent some
objects from garbage collecting. There are item renderers, they are
designed to be numerous, but even they, they are cached by components
like datagrid, list, etc.

--- In flexcoders@yahoogroups.commailto:flexcoders%40yahoogroups.com, 
e_baggg [EMAIL PROTECTED] wrote:

 My original mxml was a bad example I guess. In my application, which
 is a Flex app that has its own windowing (exactly like Windows)...when
 I add and create Windows and close them, the browser CPU memory always
 increments (except for IE when I minimize the browswer window and
 memory is restored). When using System.totalMemory, I see some memory
 gets cleaned up but not all of it and if I open and close the same
 window multiple times, it is inconsistent to how much memory is given
 back to the Player, but either way it continually increments. I use
 weakReferences everywhere and call removeAllChildren() on the toplevel
 containers and set the viewComponent to null when removing the
 Mediator from the Facade (PureMvc). But yeah, when using Profiler,
 which forces a gc(), all memory is correctly restored back the player.
 Just not in runtime. The hunt continues...

 --- In flexcoders@yahoogroups.commailto:flexcoders%40yahoogroups.com, 
 andrii_olefirenko andriyo@
 wrote:
 
  i've tried your example and didn't notice any memory leakage.
  anyway, why do you need to create components and remove them, and
  create again the same components? It looks like you made up an
  artificial problem for yourself :)
 
 
  --- In flexcoders@yahoogroups.commailto:flexcoders%40yahoogroups.com, 
  e_baggg e_baggg@ wrote:
  
   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

[flexcoders] Re: Memory issues ... garbage collection only running in IE (not FF or Safari)

2008-10-28 Thread e_baggg
Thanks for the great advice so far...so what is the best way of 
freeing Images for gc()? I have a DataGrid that has an itemRenderer 
with a mx:Image/...if I have a dataProvider ArrayCollection (where 
each records has a URL that the Image uses)...does simply setting the 
dataProvider to null take care of marking the image for GC? And 
anything I have a Bitmap for? Simply setting to null.

Thanks again. 

--- In flexcoders@yahoogroups.com, Alex Harui [EMAIL PROTECTED] wrote:

 If your app creates lots of stuff, you'll create a high-water mark 
and GC won't run until you get back up near that high-water mark.  
Images are known to easy ways to set that high-water mark pretty high.
 
 In general, the answer is to re-use instead of re-create, and only 
create what you need when you need it.
 
 -Alex
 
 From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] 
On Behalf Of Blake Barrett
 Sent: Tuesday, October 28, 2008 3:09 PM
 To: flexcoders@yahoogroups.com
 Subject: RE: [flexcoders] Memory issues ... garbage collection only 
running in IE (not FF or Safari)
 
 e_baggg,
 You're not the only one. We're experiencing very similar 
problems. Our app just keeps gobbling memory until the browser 
crashes. We've had to resort to calling dispose() explicitly on every 
mx:Image and bitmap we ever instantiate, and explicitly calling 
removeAllChildren() on every contaniner before navigating away from 
anything. Helps a little. I'm going to look in to the link you 
mentioned. Maybe that will help us a little more than it has for you 
(fingers crossed).
 
 Let us all know if you find anything else out.
 
 Blake
 
 
 From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] 
On Behalf Of e_baggg
 Sent: Tuesday, October 28, 2008 2:51 PM
 To: flexcoders@yahoogroups.com
 Subject: [flexcoders] Memory issues ... garbage collection only 
running in IE (not FF or Safari)
 
 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






[flexcoders] Re: memory issues / garbage collection?

2006-12-11 Thread Pablo Rangel
Hello I'm dealing with memory issues myself. For a more in depth
description of how resources are managed and even hacks to force
garbage collection the venerable Grant Skinner did a 3 part series
complete with interactive demos. Can't ask for much more than that!

http://www.gskinner.com/blog/archives/2006/06/as3_resource_ma.html


Good luck and if anyone is interested I'm going to start on a
component that views the System.totalMemory on a timer. Sort of a mini
task manager. I'll post it on RIAForge or onflex.org when it's of any
use. 

- paul 


--- In flexcoders@yahoogroups.com, Kenneth Sutherland
[EMAIL PROTECTED] wrote:

 Thanks for the information, but it would be handy if there was some sort
 of in depth tutorial on this.  I've seen a couple of macromedia
 presentations on various flex topics and found them useful, and one of
 them mentioned in passing memory issues (but only for about 30 seconds).
 If there was one that was specifically on memory issues, weak bindings
 etc then that would be great.  If such a presentation doesn't exist then
 I'd recommend to macromedia that they create one.  It's all very well
 creating nice flashy web apps, but if they end up slowing down the host
 machine after a few minutes of use due to sloppy weak code then that's
 no use.  
 
 There does seem to be a lack of in-depth books/information at the
 moment.  I've had a look at Flex 2 training from the source and it's a
 bit fluffy and lacking any depth.  Good book in that it covers the
 basics but that's all it does.
 
  
 
 So although the updated photoviewer code will probably solve my issue
 when I get to compare my code with the new code, I'd like to be able to
 solve it myself by learning more about weak references and debugging the
 app so that I can find the memory leak myself.  
 
  
 
 Cheers Kenneth.
 
  
 
  
 
  
 
 
 
 From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
 Behalf Of Matt Chotin
 Sent: 08 December 2006 05:33
 To: flexcoders@yahoogroups.com
 Subject: RE: [flexcoders] memory issues / garbage collection?
 
  
 
 Actually I forgot, there was a memory leak still found due to an event
 listener.  We've fixed it in the 2.0.1 version of the sample (I didn't
 do it, the bug note said we made an event listener weak to address it).
 So it was my fault :-)
 
  
 
 Matt
 
  
 
 
 
 From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
 Behalf Of Matt Chotin
 Sent: Thursday, December 07, 2006 9:23 PM
 To: flexcoders@yahoogroups.com
 Subject: RE: [flexcoders] memory issues / garbage collection?
 
  
 
 When we wrote the PhotoViewer there were some memory leaks but I thought
 we got them all.  If you keep an eye on the task manager it should go
 back down after a minute or two.  Of course if by playing with the app
 you mean you edited it, I absolve myself of responsibility, even if all
 you did was change a color ;-)
 
  
 
 Matt
 
  
 
 
 
 From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
 Behalf Of Kelly
 Sent: Thursday, December 07, 2006 12:20 PM
 To: flexcoders@yahoogroups.com
 Subject: RE: [flexcoders] memory issues / garbage collection?
 
  
 
 I was having this problem when I built the map component for
 www.pikeo.com http://www.pikeo.com/ 
 
 You have to make sure that all references to an object are gone before
 it will get garbage collected.
 
 Once all references to the object are gone it will get collected within
 5 seconds usually.
 
 --Kelly
 
 
 
 From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
 Behalf Of Kenneth Sutherland
 Sent: Thursday, December 07, 2006 1:18 AM
 To: flexcoders@yahoogroups.com
 Subject: [flexcoders] memory issues / garbage collection?
 
  
 
 I've been playing around with the photoviewer example (from the adobe
 site) quite a bit in my spare time and I've noticed that when I open up
 the taskmanager and I run the application that the memory consumption
 just keeps on going up!  Each time I look at another photo, up it goes.
 
 So I'm looking for any hints, tips, tutorials or books that will help to
 get flex to garbage collect all of the old memory that the app no longer
 needs.
 
  
 
 Thanks.





[flexcoders] Re: memory issues / garbage collection?

2006-12-11 Thread Shannon
Check this out: Flex Performance Tips - David George
https://admin.adobe.acrobat.com/_a300965365/p71169528/

--- In flexcoders@yahoogroups.com, Pablo Rangel [EMAIL PROTECTED] 
wrote:

 Hello I'm dealing with memory issues myself. For a more in depth
 description of how resources are managed and even hacks to force
 garbage collection the venerable Grant Skinner did a 3 part series
 complete with interactive demos. Can't ask for much more than that!
 
 http://www.gskinner.com/blog/archives/2006/06/as3_resource_ma.html
 
 
 Good luck and if anyone is interested I'm going to start on a
 component that views the System.totalMemory on a timer. Sort of a 
mini
 task manager. I'll post it on RIAForge or onflex.org when it's of 
any
 use. 
 
 - paul 
 
 
 --- In flexcoders@yahoogroups.com, Kenneth Sutherland
 ksutherland@ wrote:
 
  Thanks for the information, but it would be handy if there was 
some sort
  of in depth tutorial on this.  I've seen a couple of macromedia
  presentations on various flex topics and found them useful, and 
one of
  them mentioned in passing memory issues (but only for about 30 
seconds).
  If there was one that was specifically on memory issues, weak 
bindings
  etc then that would be great.  If such a presentation doesn't 
exist then
  I'd recommend to macromedia that they create one.  It's all very 
well
  creating nice flashy web apps, but if they end up slowing down 
the host
  machine after a few minutes of use due to sloppy weak code then 
that's
  no use.  
  
  There does seem to be a lack of in-depth books/information at the
  moment.  I've had a look at Flex 2 training from the source and 
it's a
  bit fluffy and lacking any depth.  Good book in that it covers the
  basics but that's all it does.
  
   
  
  So although the updated photoviewer code will probably solve my 
issue
  when I get to compare my code with the new code, I'd like to be 
able to
  solve it myself by learning more about weak references and 
debugging the
  app so that I can find the memory leak myself.  
  
   
  
  Cheers Kenneth.
  
   
  
   
  
   
  
  
  
  From: flexcoders@yahoogroups.com 
[mailto:[EMAIL PROTECTED] On
  Behalf Of Matt Chotin
  Sent: 08 December 2006 05:33
  To: flexcoders@yahoogroups.com
  Subject: RE: [flexcoders] memory issues / garbage collection?
  
   
  
  Actually I forgot, there was a memory leak still found due to an 
event
  listener.  We've fixed it in the 2.0.1 version of the sample (I 
didn't
  do it, the bug note said we made an event listener weak to 
address it).
  So it was my fault :-)
  
   
  
  Matt
  
   
  
  
  
  From: flexcoders@yahoogroups.com 
[mailto:[EMAIL PROTECTED] On
  Behalf Of Matt Chotin
  Sent: Thursday, December 07, 2006 9:23 PM
  To: flexcoders@yahoogroups.com
  Subject: RE: [flexcoders] memory issues / garbage collection?
  
   
  
  When we wrote the PhotoViewer there were some memory leaks but I 
thought
  we got them all.  If you keep an eye on the task manager it 
should go
  back down after a minute or two.  Of course if by playing with 
the app
  you mean you edited it, I absolve myself of responsibility, even 
if all
  you did was change a color ;-)
  
   
  
  Matt
  
   
  
  
  
  From: flexcoders@yahoogroups.com 
[mailto:[EMAIL PROTECTED] On
  Behalf Of Kelly
  Sent: Thursday, December 07, 2006 12:20 PM
  To: flexcoders@yahoogroups.com
  Subject: RE: [flexcoders] memory issues / garbage collection?
  
   
  
  I was having this problem when I built the map component for
  www.pikeo.com http://www.pikeo.com/ 
  
  You have to make sure that all references to an object are gone 
before
  it will get garbage collected.
  
  Once all references to the object are gone it will get collected 
within
  5 seconds usually.
  
  --Kelly
  
  
  
  From: flexcoders@yahoogroups.com 
[mailto:[EMAIL PROTECTED] On
  Behalf Of Kenneth Sutherland
  Sent: Thursday, December 07, 2006 1:18 AM
  To: flexcoders@yahoogroups.com
  Subject: [flexcoders] memory issues / garbage collection?
  
   
  
  I've been playing around with the photoviewer example (from the 
adobe
  site) quite a bit in my spare time and I've noticed that when I 
open up
  the taskmanager and I run the application that the memory 
consumption
  just keeps on going up!  Each time I look at another photo, up it 
goes.
  
  So I'm looking for any hints, tips, tutorials or books that will 
help to
  get flex to garbage collect all of the old memory that the app no 
longer
  needs.
  
   
  
  Thanks.