[flexcoders] runtime-shared-library-path tag is overriding the default framework RSLs

2011-09-30 Thread lew.miller
I'm trying to add some custom RSLs to my ant build scripts but it seems that, 
unlike library-path and external-library-path, the runtime-shared-library-path 
ANT task does not accept an append attribute and it ends up overriding all 
the framework RSLs defined in flex-config.xml.  

How do you specify a custom RSL in an ANT script without overriding the default 
shared libraries?



[flexcoders] Re: memory leaks and activation-objects

2010-09-01 Thread lew.miller
Looks like I need to focus on those functions.  Many thanks!

--- In flexcoders@yahoogroups.com, Alex Harui aha...@... wrote:

 I don't like anonymous functions, nested functions or whatever you want to 
 call function instances.  Everything on the callstack is referenced by the 
 scope-chain/activation object until the function instance can be GC'd.  Once 
 you call removeEventLIstener, then the scope-chain goes away, but until then, 
 lots of things are kept around.
 
 It is generallyl more efficient to make doSomething a member method on the 
 class.  Or create a helper class that handles the dialog and stores the x,y,z 
 values.
 
 When you originally posted I thought you were saying that an activation 
 object that should go away wasn't or was blocking other things from going 
 away.  AFAIK, that isn't true, but activation objects are kept around by 
 references to function instances and can lead to unexpected memory usage.
 
 On 8/31/10 7:53 AM, lew.miller lew.mil...@... wrote:
 
 
 
 
 
 
 
 
 Yes.  That's precisely what I'm doing.  Only, looking at the code now I 
 realize most of the time I'm using nested functions (with names) rather than 
 anonymous functions.  I'm not sure what the implications are of using one 
 over another are but, regardless, I gather you're suggesting this is a 
 potential problem?
 
 A typical example of what I'm doing would be something like:
 
 private function showDialog(x,y,z):void
 {
  var dialog:SomeDialog = new SomeDialog();
  dialog.addEventListener(ok, function doSomething(e:DialogEvent):void
  {
  someMethod(x,y,z);
  }
  dialog.show();
 }
 
 I'm using the nested function because I need some way to get the x,y,z values 
 into someMethod.  Does this code look problematic?
 
 Thanks much for your help!
 
 Lew
 
 --- In flexcoders@yahoogroups.com mailto:flexcoders%40yahoogroups.com , 
 Alex Harui aharui@ wrote:
 
  Could you be registering anonymous functions as event listeners and other 
  callbacks?
 
 
  On 8/30/10 12:52 PM, lew.miller lew.miller@ wrote:
 
 
 
 
 
 
  Thanks Alex.  I don't have any simple test case indicating that they leak, 
  I'm just struggling to understand what is causing certain leaks in a large 
  application where the profiler points me to activation objects.
 
  So when tracking memory leaks with the FB4 profiler you're saying one 
  can/should simply ignore any object reference paths that start with 
  activation objects?  (If so, it would be nice if they weren't reported--but 
  that's a separate issue.)  Can you tell me what it means when the profiler 
  lists activation objects?  Does that imply some corresponding function is 
  executing at the time the memory snapshot was taken?  If I understood why 
  I'm getting all these references from activation objects I'd feel a bit 
  more comfortable about ignoring them. :-)
 
  My application makes use of anonymous functions in places and I read an old 
  Adobe Developer Connection article that says:
 
  Defining functions on the fly causes an arcane memory leak in Flash Player 
  because the activation object sent to the function can never be recovered 
  by the garbage collector. So the bottom line is to avoid dynamic classes 
  and explicitly define all the properties and functions used in your 
  classes.
 
  It doesn't elaborate and was written in 2006 so it may be irrelevant but 
  makes me wonder.
 
  --- In flexcoders@yahoogroups.com mailto:flexcoders%40yahoogroups.com  
  mailto:flexcoders%40yahoogroups.com , Alex Harui aharui@ wrote:
  
   AFAIK, they do not cause leaks.  If you show some data or a simple test 
   case that indicates that they are, I will try to take a look.
  
  
   On 8/30/10 8:36 AM, lew.miller lew.miller@ wrote:
  
  
  
  
  
  
   I've been wrestling with memory leaks and the FB4 profiler and lately 
   have been trying to understand activation-objects and their relationship 
   to GC because the vast majority (often all) of the references the 
   profiler tells me an object has keeping it in memory come from activation 
   objects.
  
   While researching this I came across a note from Alex Harui saying I've 
   never seen an activation object cause a leak but other things I've read 
   seem to suggest they can.  (Certainly the profiler would lead me to 
   believe it.)  Can anybody enlighten me?  Or just point me to the place to 
   read documentation on the subject that is up-to-date?  Half of what I've 
   read about activation objects appears to be from earlier versions of 
   ActionScript so I'm not sure what to believe.
  
   If an activation object can cause a memory leak, I'd like to understand 
   how.  I may not have a firm grasp of the lifecycle of an activation 
   object but I thought it would no longer be accessible from the GC root 
   after the function it's created for finishes executing.
  
   Any help or pointers would be greatly appreciated.
  
   Lew
  
  
  
  
  
  
   --
   Alex Harui
   Flex SDK Team
   Adobe System, Inc

[flexcoders] Re: memory leaks and activation-objects

2010-08-31 Thread lew.miller


Yes.  That's precisely what I'm doing.  Only, looking at the code now I realize 
most of the time I'm using nested functions (with names) rather than anonymous 
functions.  I'm not sure what the implications are of using one over another 
are but, regardless, I gather you're suggesting this is a potential problem?  

A typical example of what I'm doing would be something like:

private function showDialog(x,y,z):void
{
  var dialog:SomeDialog = new SomeDialog();
  dialog.addEventListener(ok, function doSomething(e:DialogEvent):void 
{
  someMethod(x,y,z);
}
  dialog.show();
}

I'm using the nested function because I need some way to get the x,y,z values 
into someMethod.  Does this code look problematic?

Thanks much for your help!

Lew


--- In flexcoders@yahoogroups.com, Alex Harui aha...@... wrote:

 Could you be registering anonymous functions as event listeners and other 
 callbacks?
 
 
 On 8/30/10 12:52 PM, lew.miller lew.mil...@... wrote:
 
 
 
 
 
 
 Thanks Alex.  I don't have any simple test case indicating that they leak, 
 I'm just struggling to understand what is causing certain leaks in a large 
 application where the profiler points me to activation objects.
 
 So when tracking memory leaks with the FB4 profiler you're saying one 
 can/should simply ignore any object reference paths that start with 
 activation objects?  (If so, it would be nice if they weren't reported--but 
 that's a separate issue.)  Can you tell me what it means when the profiler 
 lists activation objects?  Does that imply some corresponding function is 
 executing at the time the memory snapshot was taken?  If I understood why I'm 
 getting all these references from activation objects I'd feel a bit more 
 comfortable about ignoring them. :-)
 
 My application makes use of anonymous functions in places and I read an old 
 Adobe Developer Connection article that says:
 
 Defining functions on the fly causes an arcane memory leak in Flash Player 
 because the activation object sent to the function can never be recovered by 
 the garbage collector. So the bottom line is to avoid dynamic classes and 
 explicitly define all the properties and functions used in your classes.
 
 It doesn't elaborate and was written in 2006 so it may be irrelevant but 
 makes me wonder.
 
 --- In flexcoders@yahoogroups.com mailto:flexcoders%40yahoogroups.com , 
 Alex Harui aharui@ wrote:
 
  AFAIK, they do not cause leaks.  If you show some data or a simple test 
  case that indicates that they are, I will try to take a look.
 
 
  On 8/30/10 8:36 AM, lew.miller lew.miller@ wrote:
 
 
 
 
 
 
  I've been wrestling with memory leaks and the FB4 profiler and lately have 
  been trying to understand activation-objects and their relationship to GC 
  because the vast majority (often all) of the references the profiler tells 
  me an object has keeping it in memory come from activation objects.
 
  While researching this I came across a note from Alex Harui saying I've 
  never seen an activation object cause a leak but other things I've read 
  seem to suggest they can.  (Certainly the profiler would lead me to believe 
  it.)  Can anybody enlighten me?  Or just point me to the place to read 
  documentation on the subject that is up-to-date?  Half of what I've read 
  about activation objects appears to be from earlier versions of 
  ActionScript so I'm not sure what to believe.
 
  If an activation object can cause a memory leak, I'd like to understand 
  how.  I may not have a firm grasp of the lifecycle of an activation object 
  but I thought it would no longer be accessible from the GC root after the 
  function it's created for finishes executing.
 
  Any help or pointers would be greatly appreciated.
 
  Lew
 
 
 
 
 
 
  --
  Alex Harui
  Flex SDK Team
  Adobe System, Inc.
  http://blogs.adobe.com/aharui
 
 
 
 
 
 
 
 --
 Alex Harui
 Flex SDK Team
 Adobe System, Inc.
 http://blogs.adobe.com/aharui





[flexcoders] memory leaks and activation-objects

2010-08-30 Thread lew.miller
I've been wrestling with memory leaks and the FB4 profiler and lately have been 
trying to understand activation-objects and their relationship to GC because 
the vast majority (often all) of the references the profiler tells me an object 
has keeping it in memory come from activation objects.

While researching this I came across a note from Alex Harui saying I've never 
seen an activation object cause a leak but other things I've read seem to 
suggest they can.  (Certainly the profiler would lead me to believe it.)  Can 
anybody enlighten me?  Or just point me to the place to read documentation on 
the subject that is up-to-date?  Half of what I've read about activation 
objects appears to be from earlier versions of ActionScript so I'm not sure 
what to believe.

If an activation object can cause a memory leak, I'd like to understand how.  I 
may not have a firm grasp of the lifecycle of an activation object but I 
thought it would no longer be accessible from the GC root after the function 
it's created for finishes executing.

Any help or pointers would be greatly appreciated. 

Lew



[flexcoders] Re: memory leaks and activation-objects

2010-08-30 Thread lew.miller
Thanks Alex.  I don't have any simple test case indicating that they leak, I'm 
just struggling to understand what is causing certain leaks in a large 
application where the profiler points me to activation objects.  

So when tracking memory leaks with the FB4 profiler you're saying one 
can/should simply ignore any object reference paths that start with activation 
objects?  (If so, it would be nice if they weren't reported--but that's a 
separate issue.)  Can you tell me what it means when the profiler lists 
activation objects?  Does that imply some corresponding function is executing 
at the time the memory snapshot was taken?  If I understood why I'm getting all 
these references from activation objects I'd feel a bit more comfortable about 
ignoring them. :-)

My application makes use of anonymous functions in places and I read an old 
Adobe Developer Connection article that says:

Defining functions on the fly causes an arcane memory leak in Flash Player 
because the activation object sent to the function can never be recovered by 
the garbage collector. So the bottom line is to avoid dynamic classes and 
explicitly define all the properties and functions used in your classes.

It doesn't elaborate and was written in 2006 so it may be irrelevant but makes 
me wonder.



--- In flexcoders@yahoogroups.com, Alex Harui aha...@... wrote:

 AFAIK, they do not cause leaks.  If you show some data or a simple test case 
 that indicates that they are, I will try to take a look.
 
 
 On 8/30/10 8:36 AM, lew.miller lew.mil...@... wrote:
 
 
 
 
 
 
 I've been wrestling with memory leaks and the FB4 profiler and lately have 
 been trying to understand activation-objects and their relationship to GC 
 because the vast majority (often all) of the references the profiler tells me 
 an object has keeping it in memory come from activation objects.
 
 While researching this I came across a note from Alex Harui saying I've 
 never seen an activation object cause a leak but other things I've read seem 
 to suggest they can.  (Certainly the profiler would lead me to believe it.)  
 Can anybody enlighten me?  Or just point me to the place to read 
 documentation on the subject that is up-to-date?  Half of what I've read 
 about activation objects appears to be from earlier versions of ActionScript 
 so I'm not sure what to believe.
 
 If an activation object can cause a memory leak, I'd like to understand how.  
 I may not have a firm grasp of the lifecycle of an activation object but I 
 thought it would no longer be accessible from the GC root after the function 
 it's created for finishes executing.
 
 Any help or pointers would be greatly appreciated.
 
 Lew
 
 
 
 
 
 
 --
 Alex Harui
 Flex SDK Team
 Adobe System, Inc.
 http://blogs.adobe.com/aharui