[flexcoders] Re: Inline functions and Anonymous

2009-12-07 Thread cuttenv
Anyone have more input on this? Thanks in advance :)

--- In flexcoders@yahoogroups.com, "cuttenv"  wrote:
>
> So at the end of the main function call everything would go out of scope and 
> be eligible for garbage collection? The issue is that I see a LOT of 
> functions definitions that are not being garbage collected and I am trying to 
> pin point if using named functions like this could be the problem. I know you 
> can create strong references on Event Listeners and that causes things not to 
> get garbage collected. What are other ways that functions might not be 
> garbage collected?
> 
> private var run:String = "one";
> private function main():void{
> function boo()void{
>Alert.show("boo hoo");
> }
> foo(boo);
> }
> private function foo function(bar:Function):void{
> var str:String = "Hello";
> function fnc1():void{
>function fnc1a():void{
>   Alert.show(str+" function 1 A!");
>   bar();
>}
>function fnc1b():void{
>   bar();
>   Alert.show(str+" function 1 B!");
>}
>runFuncs(fnc1a, fnc1b);
> }
> function fnc2():void{
>Alert.show("WOW This can be confusing!");
> }
> if(run == "one"){
>fnc1();
> }
> else if(run == "two"){
>fnc2();
> }
> else{
>bar();
> }
> }
> 
> private runFuncs(a:Function, b:Function):void{
> a();
> b();
> }
> 
> 
> --- In flexcoders@yahoogroups.com, Alex Harui  wrote:
> >
> > Once it goes out of scope it is eligible for GC unless there is another 
> > reference to it
> > 
> > Alex Harui
> > Flex SDK Developer
> > Adobe Systems Inc.<http://www.adobe.com/>
> > Blog: http://blogs.adobe.com/aharui
> > 
> > From: flexcoders@yahoogroups.com [mailto:flexcod...@yahoogroups.com] On 
> > Behalf Of cuttenv
> > Sent: Thursday, December 03, 2009 7:08 PM
> > To: flexcoders@yahoogroups.com
> > Subject: [flexcoders] Re: Inline functions and Anonymous
> > 
> > 
> > 
> > Ok what about the second example though? Those are all named functions, but 
> > as you can see it gets messy rather quickly. In the example below would the 
> > foo function ever get garbage collected because it has all those other 
> > functions in it as well...
> > 
> > --- In flexcoders@yahoogroups.com<mailto:flexcoders%40yahoogroups.com>, 
> > Gordon Smith  wrote:
> > >
> > > I've heard that anonymous functions are significantly slower because the 
> > > runtime has to create an activation frame for them. We use very few 
> > > anonymous functions in the Flex framework.
> > >
> > > Gordon Smith
> > > Adobe Flex SDK Team
> > >
> > > From: flexcoders@yahoogroups.com<mailto:flexcoders%40yahoogroups.com> 
> > > [mailto:flexcoders@yahoogroups.com<mailto:flexcoders%40yahoogroups.com>] 
> > > On Behalf Of cuttenv
> > > Sent: Thursday, December 03, 2009 6:04 PM
> > > To: flexcoders@yahoogroups.com<mailto:flexcoders%40yahoogroups.com>
> > > Subject: [flexcoders] Inline functions and Anonymous
> > >
> > >
> > >
> > > Hi everyone, I have a quick question. Is there any performance gain when 
> > > using an inline or anonymous function in flex??
> > >
> > > For example let's say you have:
> > >
> > > private foo function():void{
> > > var btn:Button = new Button();
> > > var str:String = "Hello Guys";
> > > btn.addEventListener(MouseEvent.CLICK, function(event:MouseEvent):void{ 
> > > Alert.show(str); } );
> > > }
> > >
> > > So I realize the advantage to using inline functions is that you can use 
> > > local variables that are defined in the scope for example the str 
> > > variable. But what happens when you have the extreme case like this:
> > >
> > > private var run:String = "one";
> > > private function main():void{
> > > function boo()void{
> > > Alert.show("boo hoo");
> > > }
> > > foo(boo);
> > > }
> > > private function foo function(bar:Function):void{
> > > var str:String = "Hello";
> > > function fnc1a():void{
> > > function fnc1a():void{
> > > Alert.show(str+" function 1 A!");
> > > bar();
> > > }
> > > function fnc1b():void{
> > > bar();
> > > Alert.show(str+" function 1 B!");
> > > }
> > > runFuncs(fnc1a, fnc1b);
> > > }
> > > function fnc2():void{
> > > Alert.show("WOW This can be confusing!");
> > > }
> > > if(run == "one"){
> > > fnc1();
> > > }
> > > else if(run == "two"){
> > > fnc2();
> > > }
> > > else{
> > > bar();
> > > }
> > > }
> > >
> > > private runFuncs(a:Function, b:Function):void{
> > > a();
> > > b();
> > > }
> > >
> > > nice eh? >_< So what are the disadvantages?? My main concern here is 
> > > memory leaks and performance. I was looking at the profiler and I think 
> > > the garbage collector may not be cleaning up all the unused functions.
> > >
> > > Please help :D
> > >
> >
>




[flexcoders] Re: Inline functions and Anonymous

2009-12-04 Thread cuttenv
So at the end of the main function call everything would go out of scope and be 
eligible for garbage collection? The issue is that I see a LOT of functions 
definitions that are not being garbage collected and I am trying to pin point 
if using named functions like this could be the problem. I know you can create 
strong references on Event Listeners and that causes things not to get garbage 
collected. What are other ways that functions might not be garbage collected?

private var run:String = "one";
private function main():void{
function boo()void{
   Alert.show("boo hoo");
}
foo(boo);
}
private function foo function(bar:Function):void{
var str:String = "Hello";
function fnc1():void{
   function fnc1a():void{
  Alert.show(str+" function 1 A!");
  bar();
   }
   function fnc1b():void{
  bar();
  Alert.show(str+" function 1 B!");
   }
   runFuncs(fnc1a, fnc1b);
}
function fnc2():void{
   Alert.show("WOW This can be confusing!");
}
if(run == "one"){
   fnc1();
}
else if(run == "two"){
   fnc2();
}
else{
   bar();
}
}

private runFuncs(a:Function, b:Function):void{
a();
b();
}


--- In flexcoders@yahoogroups.com, Alex Harui  wrote:
>
> Once it goes out of scope it is eligible for GC unless there is another 
> reference to it
> 
> Alex Harui
> Flex SDK Developer
> Adobe Systems Inc.<http://www.adobe.com/>
> Blog: http://blogs.adobe.com/aharui
> 
> From: flexcoders@yahoogroups.com [mailto:flexcod...@yahoogroups.com] On 
> Behalf Of cuttenv
> Sent: Thursday, December 03, 2009 7:08 PM
> To: flexcoders@yahoogroups.com
> Subject: [flexcoders] Re: Inline functions and Anonymous
> 
> 
> 
> Ok what about the second example though? Those are all named functions, but 
> as you can see it gets messy rather quickly. In the example below would the 
> foo function ever get garbage collected because it has all those other 
> functions in it as well...
> 
> --- In flexcoders@yahoogroups.com<mailto:flexcoders%40yahoogroups.com>, 
> Gordon Smith  wrote:
> >
> > I've heard that anonymous functions are significantly slower because the 
> > runtime has to create an activation frame for them. We use very few 
> > anonymous functions in the Flex framework.
> >
> > Gordon Smith
> > Adobe Flex SDK Team
> >
> > From: flexcoders@yahoogroups.com<mailto:flexcoders%40yahoogroups.com> 
> > [mailto:flexcoders@yahoogroups.com<mailto:flexcoders%40yahoogroups.com>] On 
> > Behalf Of cuttenv
> > Sent: Thursday, December 03, 2009 6:04 PM
> > To: flexcoders@yahoogroups.com<mailto:flexcoders%40yahoogroups.com>
> > Subject: [flexcoders] Inline functions and Anonymous
> >
> >
> >
> > Hi everyone, I have a quick question. Is there any performance gain when 
> > using an inline or anonymous function in flex??
> >
> > For example let's say you have:
> >
> > private foo function():void{
> > var btn:Button = new Button();
> > var str:String = "Hello Guys";
> > btn.addEventListener(MouseEvent.CLICK, function(event:MouseEvent):void{ 
> > Alert.show(str); } );
> > }
> >
> > So I realize the advantage to using inline functions is that you can use 
> > local variables that are defined in the scope for example the str variable. 
> > But what happens when you have the extreme case like this:
> >
> > private var run:String = "one";
> > private function main():void{
> > function boo()void{
> > Alert.show("boo hoo");
> > }
> > foo(boo);
> > }
> > private function foo function(bar:Function):void{
> > var str:String = "Hello";
> > function fnc1a():void{
> > function fnc1a():void{
> > Alert.show(str+" function 1 A!");
> > bar();
> > }
> > function fnc1b():void{
> > bar();
> > Alert.show(str+" function 1 B!");
> > }
> > runFuncs(fnc1a, fnc1b);
> > }
> > function fnc2():void{
> > Alert.show("WOW This can be confusing!");
> > }
> > if(run == "one"){
> > fnc1();
> > }
> > else if(run == "two"){
> > fnc2();
> > }
> > else{
> > bar();
> > }
> > }
> >
> > private runFuncs(a:Function, b:Function):void{
> > a();
> > b();
> > }
> >
> > nice eh? >_< So what are the disadvantages?? My main concern here is memory 
> > leaks and performance. I was looking at the profiler and I think the 
> > garbage collector may not be cleaning up all the unused functions.
> >
> > Please help :D
> >
>




RE: [flexcoders] Re: Inline functions and Anonymous

2009-12-04 Thread Alex Harui
Once it goes out of scope it is eligible for GC unless there is another 
reference to it

Alex Harui
Flex SDK Developer
Adobe Systems Inc.<http://www.adobe.com/>
Blog: http://blogs.adobe.com/aharui

From: flexcoders@yahoogroups.com [mailto:flexcod...@yahoogroups.com] On Behalf 
Of cuttenv
Sent: Thursday, December 03, 2009 7:08 PM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Re: Inline functions and Anonymous



Ok what about the second example though? Those are all named functions, but as 
you can see it gets messy rather quickly. In the example below would the foo 
function ever get garbage collected because it has all those other functions in 
it as well...

--- In flexcoders@yahoogroups.com<mailto:flexcoders%40yahoogroups.com>, Gordon 
Smith  wrote:
>
> I've heard that anonymous functions are significantly slower because the 
> runtime has to create an activation frame for them. We use very few anonymous 
> functions in the Flex framework.
>
> Gordon Smith
> Adobe Flex SDK Team
>
> From: flexcoders@yahoogroups.com<mailto:flexcoders%40yahoogroups.com> 
> [mailto:flexcoders@yahoogroups.com<mailto:flexcoders%40yahoogroups.com>] On 
> Behalf Of cuttenv
> Sent: Thursday, December 03, 2009 6:04 PM
> To: flexcoders@yahoogroups.com<mailto:flexcoders%40yahoogroups.com>
> Subject: [flexcoders] Inline functions and Anonymous
>
>
>
> Hi everyone, I have a quick question. Is there any performance gain when 
> using an inline or anonymous function in flex??
>
> For example let's say you have:
>
> private foo function():void{
> var btn:Button = new Button();
> var str:String = "Hello Guys";
> btn.addEventListener(MouseEvent.CLICK, function(event:MouseEvent):void{ 
> Alert.show(str); } );
> }
>
> So I realize the advantage to using inline functions is that you can use 
> local variables that are defined in the scope for example the str variable. 
> But what happens when you have the extreme case like this:
>
> private var run:String = "one";
> private function main():void{
> function boo()void{
> Alert.show("boo hoo");
> }
> foo(boo);
> }
> private function foo function(bar:Function):void{
> var str:String = "Hello";
> function fnc1a():void{
> function fnc1a():void{
> Alert.show(str+" function 1 A!");
> bar();
> }
> function fnc1b():void{
> bar();
> Alert.show(str+" function 1 B!");
> }
> runFuncs(fnc1a, fnc1b);
> }
> function fnc2():void{
> Alert.show("WOW This can be confusing!");
> }
> if(run == "one"){
> fnc1();
> }
> else if(run == "two"){
> fnc2();
> }
> else{
> bar();
> }
> }
>
> private runFuncs(a:Function, b:Function):void{
> a();
> b();
> }
>
> nice eh? >_< So what are the disadvantages?? My main concern here is memory 
> leaks and performance. I was looking at the profiler and I think the garbage 
> collector may not be cleaning up all the unused functions.
>
> Please help :D
>



[flexcoders] Re: Inline functions and Anonymous

2009-12-03 Thread cuttenv
Ok what about the second example though? Those are all named functions, but as 
you can see it gets messy rather quickly. In the example below would the foo 
function ever get garbage collected because it has all those other functions in 
it as well...

--- In flexcoders@yahoogroups.com, Gordon Smith  wrote:
>
> I've heard that anonymous functions are significantly slower because the 
> runtime has to create an activation frame for them. We use very few anonymous 
> functions in the Flex framework.
> 
> Gordon Smith
> Adobe Flex SDK Team
> 
> From: flexcoders@yahoogroups.com [mailto:flexcod...@yahoogroups.com] On 
> Behalf Of cuttenv
> Sent: Thursday, December 03, 2009 6:04 PM
> To: flexcoders@yahoogroups.com
> Subject: [flexcoders] Inline functions and Anonymous
> 
> 
> 
> Hi everyone, I have a quick question. Is there any performance gain when 
> using an inline or anonymous function in flex??
> 
> For example let's say you have:
> 
> private foo function():void{
> var btn:Button = new Button();
> var str:String = "Hello Guys";
> btn.addEventListener(MouseEvent.CLICK, function(event:MouseEvent):void{ 
> Alert.show(str); } );
> }
> 
> So I realize the advantage to using inline functions is that you can use 
> local variables that are defined in the scope for example the str variable. 
> But what happens when you have the extreme case like this:
> 
> private var run:String = "one";
> private function main():void{
> function boo()void{
> Alert.show("boo hoo");
> }
> foo(boo);
> }
> private function foo function(bar:Function):void{
> var str:String = "Hello";
> function fnc1a():void{
> function fnc1a():void{
> Alert.show(str+" function 1 A!");
> bar();
> }
> function fnc1b():void{
> bar();
> Alert.show(str+" function 1 B!");
> }
> runFuncs(fnc1a, fnc1b);
> }
> function fnc2():void{
> Alert.show("WOW This can be confusing!");
> }
> if(run == "one"){
> fnc1();
> }
> else if(run == "two"){
> fnc2();
> }
> else{
> bar();
> }
> }
> 
> private runFuncs(a:Function, b:Function):void{
> a();
> b();
> }
> 
> nice eh? >_< So what are the disadvantages?? My main concern here is memory 
> leaks and performance. I was looking at the profiler and I think the garbage 
> collector may not be cleaning up all the unused functions.
> 
> Please help :D
>




[flexcoders] Re: Inline functions and Anonymous

2009-12-03 Thread cuttenv


--- In flexcoders@yahoogroups.com, "cuttenv"  wrote:
>
> Hi everyone, I have a quick question. Is there any performance gain when 
> using an inline or anonymous function in flex??
> 
> For example let's say you have:
> 
> private foo function():void{
>   var btn:Button = new Button();
>   var str:String = "Hello Guys";
>   btn.addEventListener(MouseEvent.CLICK, function(event:MouseEvent):void{ 
> Alert.show(str); } );
> }
> 
> So I realize the advantage to using inline functions is that you can use 
> local variables that are defined in the scope for example the str variable. 
> But what happens when you have the extreme case like this:
> 
> private var run:String = "one";
> private function main():void{
>function boo()void{
>   Alert.show("boo hoo");
>}
>foo(boo);
> }
> private function foo function(bar:Function):void{
>var str:String = "Hello";
>function fnc1a():void{
>   function fnc1a():void{
>  Alert.show(str+" function 1 A!");
>  bar();
>   }
>   function fnc1b():void{
>  bar();
>  Alert.show(str+" function 1 B!");
>   }
>   runFuncs(fnc1a, fnc1b);
>}
>function fnc2():void{
>   Alert.show("WOW This can be confusing!");
>}
>if(run == "one"){
>   fnc1();
>}
>else if(run == "two"){
>   fnc2();
>}
>else{
>   bar();
>}
> }
> 
> private runFuncs(a:Function, b:Function):void{
>a();
>b();
> }
> 
> 
> nice eh? >_<  So what are the disadvantages?? My main concern here is memory 
> leaks and performance. I was looking at the profiler and I think the garbage 
> collector may not be cleaning up all the unused functions.
> 
> Please help :D
>
If you click Use Fixed Width Font on the right hand side you can see this much 
better! :)