<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" 
      xmlns:thr="http://purl.org/syndication/thread/1.0">
  <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html" />
  <link rel="self" type="application/atom+xml" href="http://www.insideria.com/atom.xml" />
  <id>tag:www.insideria.com,2009://34/tag:www.insideria.com,2009://34.36034-</id>
  <updated>2009-11-21T11:10:07Z</updated>
  <title>Comments for Round up of ActionScript 3.0 and Flex optimization techniques and practices (http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html)</title>
  <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.21-en</generator>
  <entry>
    <id>tag:www.insideria.com,2009://34.36034</id>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.oreilly.com/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=34/entry_id=36034" title="Round up of ActionScript 3.0 and Flex optimization techniques and practices" />
    <published>2009-04-23T13:00:00Z</published>
    <updated>2009-04-23T13:00:00Z</updated>
    <title>Round up of ActionScript 3.0 and Flex optimization techniques and practices</title>
    <summary>A homework assignment I was recently given for a Java programming class involved a competition to see who could create the most optimized implementation of an interface which was provided by the instructor. It was a challenging and very fun assignment that I think the whole class enjoyed. I didn&#8217;t win the competition but still came out a winner because of my heightened interest in application optimization and performance tuning that I gained. </summary>
    <author>
      <name>Sean Moore</name>
      
    </author>
    
    <category term="Features" />
    
    <content type="html" xml:lang="en" xml:base="http://www.insideria.com/">
      <![CDATA[<p>A homework assignment I was recently given for a Java programming class involved a competition to see who could create the most optimized implementation of an interface which was provided by the instructor. It was a challenging and very fun assignment that I think the whole class enjoyed. I didn&#8217;t win the competition but still came out a winner because of my heightened interest in application optimization and performance tuning that I gained. </p>
 
<p>I&#8217;m personally a pretty big fan of coding standards and have been ribbed by many developers over some of the longer method, variable and class names that I sometimes choose. I've always leaned toward the side of programming that employs standards and frameworks . Rather than spending a ton of time  digging around in compiler specs and messing with GC (Garbage Collection) for reasons of performance, tuning and optimization. I was leaving this to the seasoned programmers creating the standards and frameworks I use.  </p>
 
<p>This isn&#8217;t to say I&#8217;ve never paid attention to performance and I enjoy building slow applications. It&#8217;s almost like two different worlds; the optimization world and the standards world. They don&#8217;t always agree with each other.  There can sometimes be a trade off for performance over readability and organization or vice-versa. This article is meant to stand next to the Flex Best Practices articles that I authored.  </p>

<p>While creating my concrete implementation for the homework assignment I discovered a powerful profiling engine in NetBeans. The NetBeans profiling engine helped me understand some of the memory usage and consumption of each property, method call and object instantiation in my program. This profiler in NetBeans is very similar to the one found in Flex Builder. Both are very powerful and very useful.  I've been exploring the Flex Profiler in greater detail lately as well and using it to eradicate memory leaks for a real world application I&#8217;ve been refactoring to best practices lately. </p>
 
<p>The Java optimization homework has increased my interest in optimization and profiling for ActionScript 3.0 and Flex development. I've been piecing together ActionScript optimization techniques and practices from around the web for a couple years now. Some of these techniques are in opposition to what the standards dictate but most of software development is this way. You have to learn when to use some techniques and when to leave some out. </p>

<p>Here is a round up of ActionScript 3.0 and Flex optimization techniques and practices. I&#8217;ve scoured the web for and filtered practices and techniques that can be adopted into your application development process. </p>

<p><strong>1.</strong> Avoid the new operator when creating Arrays</p> 
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
<span class="category1">var</span> a = []; </pre>
</code>

</div></div> 
 
<p>NOT: </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
<span class="category1">var</span> a = <span class="category1">new</span> <span class="category2">Array</span>(); </pre>
</code>

</div></div> 
 
<p><strong>2.</strong> Arrays are expensive to create, do so conservatively </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
<span class="category1">var</span> vanityCollection01 : <span class="category2">Array</span> = <span class="category1">new</span> <span class="category2">Array</span>(); 
<span class="category1">var</span> vanityCollection02 : <span class="category2">Array</span> = <span class="category1">new</span> <span class="category2">Array</span>(); 
<span class="category1">var</span> vanityCollection03 : <span class="category2">Array</span> = <span class="category1">new</span> <span class="category2">Array</span>(); 
<span class="category1">var</span> vanityCollection04 : <span class="category2">Array</span> = <span class="category1">new</span> <span class="category2">Array</span>(); </pre>
</code>

</div></div> 
 
<p><strong>3.</strong> Fastest way to copy an array:  </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
<span class="category1">var</span> <span class="category2">copy</span> : <span class="category2">Array</span> = sourceArray.<span class="category2">concat</span>();   </pre>
</code>

</div></div> 
 
<p><strong>4.</strong> Setting values in Arrays is slow </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
employees.<span class="category2">push</span>( employee ); 
employees[2] = employee; </pre>
</code>

</div></div> 
 
<p><strong>5.</strong> Getting values from Arrays is twice as fast as setting </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
<span class="category1">var</span> employee : Employee = employees[2]; </pre>
</code>

</div></div> 

<p><strong>6.</strong> Use static for properties methods that do not require an object instance  </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
StringUtils.trim( "<span class="quote">text with space at end </span>" ); 
Class definition: 
package 
{ 
     <span class="category1">public</span> final <span class="category1">class</span> StringUtils 
         { 
          <span class="category1">public</span> <span class="category1">static</span> <span class="category1">function</span> trim( s : <span class="category2">String</span> ) : <span class="category2">String</span> 
          { 
               <span class="category1">var</span> trimmed : <span class="category2">String</span>; 
               <span class="linecomment">// implementation... </span>
               <span class="category1">return</span> trimmed; 
           } 
      } 
} </pre>
</code>

</div></div> 

<p><strong>7.</strong> Use const for properties that will never change throughout the lifecycle of the application  </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
<span class="category1">public</span> const APPLICATION_PUBLISHER : <span class="category2">String</span> = "<span class="quote">Company, Inc.</span>"; </pre>
</code>

</div></div> 
 
<p><strong>8.</strong> Use final when no subclasses need to be created of a class  </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
<span class="category1">public</span> final <span class="category1">class</span> StringUtils </pre>
</code>

</div></div> 

<p><strong>9.</strong> Length of method/variable names doesn't matter in ActionScript 3.0 (true in other langs)  </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
someCrazyLongMethodNameDoesntReallyImpactPerformanceTooMuch(); </pre>
</code>

</div></div> 

<p><strong>10.</strong> One line assignments DO NOT buy any performance (true in other langs)  </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
<span class="category1">var</span> i=0; j=10; k=200; </pre>
</code>

</div></div> 

<p><strong>11.</strong> No difference in memory usage between an if statement and a switch statement  </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
<span class="category1">if</span> ( condition ) 
{ 
     <span class="linecomment">// handle condition </span>
} </pre>
</code>

</div></div> 
</p>

<p>IDENTICAL MEMORY USAGE:   </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
<span class="category1">switch</span> ( condition ) 
{ 
     <span class="category1">case</span> "<span class="quote">A</span>": 
         <span class="linecomment">// logic to handle case A </span>
     <span class="category1">break</span>; 
      
     <span class="category1">case</span> "<span class="quote">B</span>": 
         <span class="linecomment">// logic to handle case B  </span>
     <span class="category1">break</span>; 
} </pre>
</code>

</div></div> 

<p><strong>12.</strong> Rank your if statements in order of comparisons most likely to be true  </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
<span class="category1">if</span> ( conditionThatHappensAlot ) 
{ 
     <span class="linecomment">// logic to handle frequently met condition </span>
} 
<span class="category1">else</span> <span class="category1">if</span> ( conditionThatHappensSomtimes )  
{ 
     <span class="linecomment">// handle the case that happens occaisonally </span>
} 
<span class="category1">else</span>  
{ 
     <span class="linecomment">// handle the case that doesn&amp;#8217;t happen that often </span>
} </pre>
</code>

</div></div> 

<p><strong>13.</strong> AVM promotes int to Number during calculations inside loops (VM has been changing, from 9 to 10, so int, uint and number conversions aren't as slow as they used to be.)</p>
 
<p><strong>14.</strong> Resolve issues of promotion, unknown, or incorrect object types </p>
 
<p><strong>15.</strong> Use uint sparingly, it can be slow (VM has been changing, from 9 to 10, so int, uint and number conversions aren't as slow as they used to be.) </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
<span class="category1">var</span> footerHex : uint = 0x00ccff; </pre>
</code>

</div></div> 

<p><strong>16.</strong> Use integers for iterations  </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
(<span class="category1">var</span> i: <span class="category1">int</span> = 0; i &lt; n; i++) NOT <span class="category1">for</span> (<span class="category1">var</span> i: <span class="category2">Number</span> = 0; i &lt; n; i++) </pre>
</code>

</div></div> 

<p><strong>17.</strong> Don't use int with decimals  </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
<span class="category1">var</span> decimal : <span class="category2">Number</span>  = 14.654; </pre>
</code>

</div></div> 

<p>NOT:  </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
<span class="category1">var</span> decimal : <span class="category1">int</span>  = 14.654; </pre>
</code>

</div></div> 

<p><strong>18.</strong> Multiply vs. Divide: instead of 5000/1000 use: 5000*0.001 </p>
 
<p><strong>19.</strong> Locally store function values in for and while statements instead of repeatedly accessing them  </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
<span class="category1">for</span> (..){ a * 180 / <span class="category2">Math</span>.<span class="category2">PI</span>; }  
declare: toRadians = a*180/<span class="category2">Math</span>.<span class="category2">PI</span>; outside of the loop </pre>
</code>

</div></div> 

<p><strong>20.</strong> Avoid calculations and method calls in loops  </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
<span class="category1">var</span> len : <span class="category1">int</span> = myArray.lengh;  
<span class="category1">for</span> (<span class="category1">var</span> i=0;i&lt;len;i++){} </pre>
</code>

</div></div> 

<p>NOT:</p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre>  
<span class="category1">for</span> (<span class="category1">var</span> i=0;i&lt; myArray.lengh;i++){ } </pre>
</code>

</div></div> 

<p><strong>21.</strong> Use RegEx for validation, use string methods for searching  </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
<span class="linecomment">// postal code validation example using regular expressions </span>
<span class="category1">private</span> <span class="category1">var</span> regEx:RegExp = /^[A-Z][0-9][A-Z] [0-9][A-Z][0-9]$/i; 
<span class="category1">private</span> <span class="category1">function</span> validatePostal( event : Event ) : <span class="category1">void</span> 
{ 
     <span class="category1">if</span>( regEx.test( zipTextInput.<span class="category2">text</span> ) ) 
     { 
          <span class="linecomment">// handle invalid input case </span>
      } 
} 
 
<span class="linecomment">// search a string using String methods </span>
<span class="category1">var</span> string : <span class="category2">String</span> = "<span class="quote">Search me</span>"; 
<span class="category1">var</span> searchIndex : <span class="category1">int</span> = string.<span class="category2">indexOf</span>( "<span class="quote">me</span>" ); 
<span class="category1">var</span> search : <span class="category2">String</span> = string.<span class="category2">substring</span>( searchIndex, searchIndex + 2 ); </pre>
</code>

</div></div> 

<p><strong>22.</strong> Reuse objects to maintain a &#8220;memory plateau&#8221; DisplayObjects, URLLoader objects </p>
 
<p><strong>23.</strong> Follow the Flex component model:   </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
createChildren(); 
commitProperties(); 
updateDisplayList(); </pre>
</code>

</div></div> 

<p><strong>24.</strong> Only use Datagrids as a last resort (make sure you can&#8217;t implement in a regular List first) </p>
 
<p><strong>25.</strong> Avoid Repeaters for scrollable data </p>
 
<p><strong>26.</strong> Avoid the setStyle() method (One of the most expensive calls in the Flex framework) </p>

<p><strong>27.</strong> Using too many containers dramatically reduces the performance of your application  </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
&lt;mx:Panel&gt; 
    &lt;mx:VBox&gt; 
        &lt;mx:HBox&gt; 
            &lt;mx:Label <span class="category2">text</span>="<span class="quote">Label 1</span>" /&gt; 
             &lt;mx:VBox&gt; 
                  &lt;mx:Label <span class="category2">text</span>="<span class="quote">Label 2</span>" /&gt;  
              &lt;/mx:VBox&gt; 
              &lt;mx:HBox&gt; 
                  &lt;mx:Label <span class="category2">text</span>="<span class="quote">Label 3</span>" /&gt; 
                  &lt;mx:VBox&gt; 
                      &lt;mx:Label <span class="category2">text</span>="<span class="quote">Label 4</span>" /&gt; 
                  &lt;/mx:VBox&gt; 
              &lt;/mx:HBox&gt; 
          &lt;/mx:HBox&gt; 
      &lt;/mx:VBox&gt; 
&lt;/mx:Panel&gt; </pre>
</code>

</div></div> 

<p><strong>28.</strong> You do not need to always use a container tag as the top-level tag of components 
Totally valid component, no top level container needed:  </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
&lt;mx:Image xmlns:mx="<span class="quote">http://www.adobe.com/2006/mxml</span>"  
     source="<span class="quote">avatar.jpg</span>" <span class="category2">width</span>="<span class="quote">200</span>" <span class="category2">height</span>="<span class="quote">200</span>" /&gt; </pre>
</code>

</div></div> 

<p><strong>29.</strong> Remove unnecessary container wrappers to reduce container nesting </p>
 
<p><strong>30.</strong> Avoid: The VBox container inside an <mx:Panel> tag, (eliminates redundancy)  </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
&lt;mx:Panel&gt; 
    &lt;mx:Label <span class="category2">text</span>="<span class="quote">Label 1</span>" /&gt; 
    &lt;mx:Label <span class="category2">text</span>="<span class="quote">Label 2</span>" /&gt; 
&lt;/mx:Panel&gt; 
&lt;mx:Panel&gt; 
     &lt;mx:VBox&gt; 
        &lt;mx:Label <span class="category2">text</span>="<span class="quote">Label 1</span>" /&gt; 
        &lt;mx:Label <span class="category2">text</span>="<span class="quote">Label 2</span>" /&gt; 
    &lt;/mx:VBox&gt; 
&lt;/mx:Panel&gt; </pre>
</code>

</div></div> 

<p><strong>31.</strong> Avoid: VBox container inside an mx:Application tag, (eliminates redundancy)  </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
&lt;?xml <span class="category2">version</span>="<span class="quote">1.0</span>" encoding="<span class="quote">utf-8</span>"?&gt; 
&lt;mx:<span class="category2">Application</span> xmlns:mx=http:<span class="linecomment">//www.adobe.com/2006/mxml&gt; </span>
    &lt;mx:Label <span class="category2">text</span>="<span class="quote">Label 1</span>" /&gt; 
    &lt;mx:Label <span class="category2">text</span>="<span class="quote">Label 2</span>" /&gt; 
&lt;/mx:<span class="category2">Application</span>&gt; </pre>
</code>

</div></div> 

<p>NOT:   </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
&lt;?xml <span class="category2">version</span>="<span class="quote">1.0</span>" encoding="<span class="quote">utf-8</span>"?&gt; 
&lt;mx:<span class="category2">Application</span> xmlns:mx=http:<span class="linecomment">//www.adobe.com/2006/mxml&gt; </span>
    &lt;mx:VBox&gt; 
        &lt;mx:Label <span class="category2">text</span>="<span class="quote">Label 1</span>" /&gt; 
        &lt;mx:Label <span class="category2">text</span>="<span class="quote">Label 2</span>" /&gt; 
    &lt;/mx:VBox&gt; 
&lt;/mx:<span class="category2">Application</span>&gt; 
 </pre>
</code>

</div></div> 

<p><strong>32.</strong> Set the recycleChildren property to true to improve a Repeater object's performance  
(re-uses previously created children instead of creating new ones)  </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
&lt;mx:Script&gt; 
    &lt;![CDATA[ 
        [Bindable] 
        <span class="category1">public</span> <span class="category1">var</span> repeaterData : <span class="category2">Array</span> = ["<span class="quote">data 1</span>", "<span class="quote">data 2</span>"]; 
    ]]&gt; 
&lt;/mx:Script&gt; 
 
&lt;mx:Repeater id="<span class="quote">repeater</span>" dataProvider="<span class="quote">{repeaterData}</span>"&gt;  
    &lt;mx:Label <span class="category2">text</span>="<span class="quote">data item: {repeater.currentItem}</span>"/&gt; 
&lt;/mx:Repeater&gt; </pre>
</code>

</div></div> 

<p><strong>33.</strong> Keep framerate set at 60 fps or lower  </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
&lt;?xml <span class="category2">version</span>="<span class="quote">1.0</span>" encoding="<span class="quote">utf-8</span>"?&gt; 
&lt;mx:<span class="category2">Application</span> xmlns:mx=http:<span class="linecomment">//www.adobe.com/2006/mxml  </span>
    frameRate="<span class="quote">45</span>"&gt; 
&lt;/mx:<span class="category2">Application</span>&gt; </pre>
</code>

</div></div> 

<p><strong>34.</strong> Avoid multiple display manipulations per frame </p>

<p><strong>35.</strong> Code against ENTER_FRAME events instead of Timer events  </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
<span class="category1">public</span> <span class="category1">function</span> <span class="category2">onEnterFrame</span>( event : Event ) : <span class="category1">void</span> 
{ 
} 
<span class="category1">private</span> <span class="category1">function</span> <span class="category2">init</span>() : <span class="category1">void</span> 
{ 
     addEventListener( Event.ENTER_FRAME, <span class="category2">onEnterFrame</span> ); 
} </pre>
</code>

</div></div> 

<p>NOT: </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
<span class="category1">public</span> <span class="category1">function</span> onTimerTick( event : Event ) : <span class="category1">void</span> 
{ 
} 
<span class="category1">private</span> <span class="category1">function</span> <span class="category2">init</span>() : <span class="category1">void</span> 
{ 
     <span class="category1">var</span> timer : Timer = <span class="category1">new</span> Timer(); 
     timer.<span class="category2">start</span>(); 
     timer.addEventListener( TimerEvent.TIMER, onTimerTick ); 
} </pre>
</code>

</div></div> 

<p><strong>36.</strong> To defer object creation over multiple frames  use:  </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
&lt;mx:Container creationPolicy="<span class="quote">queued</span>"/&gt;  </pre>
</code>

</div></div> 

<p><strong>37.</strong> Alpha = 0 is not the same as visible = false (Objects marked invisible are passed over)  </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
loginButton.<span class="category2">visible</span> = <span class="category1">false</span>; </pre>
</code>

</div></div> 

<p>NOT:  </p>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre> 
loginButton.alpha = 0; </pre>
</code>

</div></div> 

<h3>References:</h3> 
<p>Sean Christmann: Optimizing Adobe AIR for Code Execution, Memory, and Rendering <br/>
<a href="http://www.craftymind.com/2008/11/20/max-2008-session-material/" target="_blank">
http://www.craftymind.com/2008/11/20/max-2008-session-material/</a> </p>

<p>Dennis Ippel: Some ActionScript 3.0 Optimizations  <br/>
<a href="http://www.rozengain.com/blog/2007/05/01/some-actionscript-30-optimizations/" target="_blank">
http://www.rozengain.com/blog/2007/05/01/some-actionscript-30-optimizations/</a> </p>

<p>Shane McCartney: Tips on how to write efficient AS3 <br/>
<a href="http://www.lostinactionscript.com/blog/index.php/2008/09/28/tips-on-how-to-write-efficient-as3/" target="_blank"> 
http://www.lostinactionscript.com/blog/index.php/2008/09/28/tips-on-how-to-write-efficient-as3/</a> </p>

<p>Flex Application Performance: Tips and Techniques for Improving Client Application Performance  <br/>
<a href="http://www.adobe.com/devnet/flex/articles/client_perf.html" target="_blank">
http://www.adobe.com/devnet/flex/articles/client_perf.html</a> </p>

<p>Stephen Calender: ActionScript 3.0 Benchmarking  <br/>
<a href="http://www.stephencalenderblog.com/?p=7" target="_blank">
http://www.stephencalenderblog.com/?p=7</a> </p>

<p>Grant Skinner: Types in AS3: ints not so fast, uints slow!  <br/>
<a href="http://www.gskinner.com/blog/archives/2006/06/types_in_as3_in.html" target="_blank">
http://www.gskinner.com/blog/archives/2006/06/types_in_as3_in.html</a> </p>

<p>Grant Skinner: Resource management strategies in Flash Player 9  <br/>
<a href="http://www.adobe.com/devnet/flashplayer/articles/resource_management.html" target="_blank">
http://www.adobe.com/devnet/flashplayer/articles/resource_management.html</a> </p>

<p>Gary Grossman: ActionScript 3.0 and AVM2 Performance Tuning  <br/>
<a href="aaa" target="_blank">
http://www.onflex.org/ACDS/AS3TuningInsideAVM2JIT.pdf </a></p>

<p>Fastest way to copy an array  <br/>
<a href="http://agit8.turbulent.ca/bwp/2008/08/04/flash-as3-optimization-fastest-way-to-copy-an-array/" target="_blank">
http://agit8.turbulent.ca/bwp/2008/08/04/flash-as3-optimization-fastest-way-to-copy-an-array/</a> </p>

<p>Andre Michelle: AS3 optimations & suggestions  <br/>
<a href="http://blog.andre-michelle.com/2005/as3-optimations-suggestions/" target="_blank">
http://blog.andre-michelle.com/2005/as3-optimations-suggestions/</a> </p>

<p>Package-level function closures in ActionScript  <br/>
<a href="http://www.ericfeminella.com/blog/2008/05/06/package-level-function-closures-in-actionscript/" target="_blank">
http://www.ericfeminella.com/blog/2008/05/06/package-level-function-closures-in-actionscript/</a></p>

<p>ActionScript 3 optimization techniques  <br/>
<a href="http://blog.joa-ebert.com/2008/04/26/actionscript-3-optimization-techniques/" target="_blank">
http://blog.joa-ebert.com/2008/04/26/actionscript-3-optimization-techniques/</a> </p>

<p>AS3 Performance Tester  <br/>
<a href="http://businessintelligence.me/projects/performance_tester/performanceTester.html" target="_blank">
http://businessintelligence.me/projects/performance_tester/performanceTester.html</a> </p>]]>
      
    </content>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058165</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058165" />
    <title>Comment from John Lindquist on 2009-04-23</title>
    <author>
        <name>John Lindquist</name>
        <uri>http://pv3d.org</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://pv3d.org">
        <![CDATA[<p>Additional Reading: <a href="http://osflash.org/as3_speed_optimizations">http://osflash.org/as3_speed_optimizations</a></p>]]>
    </content>
    <published>2009-04-23T13:25:58Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058167</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058167" />
    <title>Comment from Jesse Freeman on 2009-04-23</title>
    <author>
        <name>Jesse Freeman</name>
        <uri>http://flashartofwar.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://flashartofwar.com">
        <![CDATA[<p>This is excellent, I must read for any ActionScript developer!</p>]]>
    </content>
    <published>2009-04-23T13:52:05Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058173</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058173" />
    <title>Comment from Paw Suddergaard on 2009-04-23</title>
    <author>
        <name>Paw Suddergaard</name>
        <uri>http://blog-o-zap.blogspot.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://blog-o-zap.blogspot.com">
        <![CDATA[<p>Great list!</p>

<p>I think you have the wrong order in no. 25.</p>

<p>var len : int = myArray.lengh;  <br />
for (var i=0;i

<p>Is FASTER THAN</p>

<p>for (var i=0;i</p></p>]]>
    </content>
    <published>2009-04-23T14:05:11Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058174</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058174" />
    <title>Comment from Mike Henderson on 2009-04-23</title>
    <author>
        <name>Mike Henderson</name>
        <uri>http://mikethenderson.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://mikethenderson.com">
        <![CDATA[<p>Great article, Sean! I'm definitely guilty of a few of those. I always enjoy reading these sort of best practice/code optimization articles. </p>]]>
    </content>
    <published>2009-04-23T14:05:13Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058175</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058175" />
    <title>Comment from Mike Henderson on 2009-04-23</title>
    <author>
        <name>Mike Henderson</name>
        <uri>http://mikethenderson.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://mikethenderson.com">
        <![CDATA[<p>Great article, Sean! I'm definitely guilty of a few of those. I always enjoy reading these sort of best practice/code optimization articles. </p>]]>
    </content>
    <published>2009-04-23T14:06:34Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058178</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058178" />
    <title>Comment from John Dalziel on 2009-04-23</title>
    <author>
        <name>John Dalziel</name>
        <uri>http://www.computus.org/journal</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.computus.org/journal">
        <![CDATA[<p>Great list Sean! One quick correction through. I think the examples for no.25 have been listed the wrong way around:</p>

<p>var len : int = myArray.lengh;  <br />
for (var i=0;...</p>

<p>will be faster than</p>

<p>for (var i=0;...<br />
</p>]]>
    </content>
    <published>2009-04-23T14:15:57Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058179</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058179" />
    <title>Comment from Ben Beaumont on 2009-04-23</title>
    <author>
        <name>Ben Beaumont</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>Grant Skinner has just released a AS3 performance testing harness: <a href="http://www.gskinner.com/blog/archives/2009/04/as3_performance.html"><a href="http://www.gskinner.com/blog/archives/2009/04/as3_performance.html">http://www.gskinner.com/blog/archives/2009/04/as3_performance.html</a></a></p>]]>
    </content>
    <published>2009-04-23T14:33:46Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058181</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058181" />
    <title>Comment from Ben Beaumont on 2009-04-23</title>
    <author>
        <name>Ben Beaumont</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>Grant Skinner has just released a AS3 performance testing harness: <a href="http://www.gskinner.com/blog/archives/2009/04/as3_performance.html"><a href="http://www.gskinner.com/blog/archives/2009/04/as3_performance.html">http://www.gskinner.com/blog/archives/2009/04/as3_performance.html</a></a></p>]]>
    </content>
    <published>2009-04-23T14:34:50Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058183</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058183" />
    <title>Comment from Cesare on 2009-04-23</title>
    <author>
        <name>Cesare</name>
        <uri>http://studiomagnolia.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://studiomagnolia.com">
        <![CDATA[<p>Incredibly valuable suggestions. Thanks Sean for sharing!</p>

<p>I was wondering about #33 ... any alternative to setStyle() ?<br />
</p>]]>
    </content>
    <published>2009-04-23T14:48:52Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058199</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058199" />
    <title>Comment from Jerry Ela on 2009-04-23</title>
    <author>
        <name>Jerry Ela</name>
        <uri>http://troywebconsulting.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://troywebconsulting.com">
        <![CDATA[<p>Premature optimization is the root of all evil - Donald Knuth </p>

<p>While most of your suggestions are fine for general use, some of them can make for difficult to maintain code.  That can be an acceptable trade off if you are doing it to address a real performance issue, but not where the microsecond you save won't make any difference.</p>

<p>Particularly #s 45, 46 and 47 break encapsulation and should not be done as general practices. Putting all your code inline instead of in methods is likely to hurt performance as it will significantly increase the size of the compiled code, while it could help if limited to those places where performance is a real issue.</p>

<p>Also, I think you need to add a cred property to the first example in 47 and a userName property to the second.</p>]]>
    </content>
    <published>2009-04-23T17:01:46Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058200</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058200" />
    <title>Comment from Tyler Egeto on 2009-04-23</title>
    <author>
        <name>Tyler Egeto</name>
        <uri>http://www.tyleregeto.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.tyleregeto.com">
        <![CDATA[<p>Good list!</p>

<p>Couple of notes, delete does not free memory, but can be used on dynamic objects to remove references, enabling them for garbage collection, assuming there are no other references to them. For a non dynamic object simply set them to null.</p>

<p>For Cast() vs. as, these two methods have an important difference, "as" type checks the object and will return null if the statement is false, while a straight Cast() with through an error. Also I thought "as" was actually the slower of the two, because of the type check?</p>

<p>Great list again, thanks for sharing!</p>]]>
    </content>
    <published>2009-04-23T17:44:06Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058203</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058203" />
    <title>Comment from Maxim Porges on 2009-04-23</title>
    <author>
        <name>Maxim Porges</name>
        <uri>http://www.maximporges.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.maximporges.com">
        <![CDATA[<p>Are you absolutely sure all these tips are (a) still valid in the AS3 language spec and (b) actually faster?</p>

<p>In #27, I don't think the "delete" operator works the way you suggested in AS3. From the AS3 docs: <i>"Also new to ActionScript 3 is the behavior of the delete keyword. The delete keyword is used to delete variables from an object. Variables defined with var, however, cannot be deleted in ActionScript 3. Only dynamic variables defined within dynamic objects can be deleted with delete. For other variables, the equivalent of deleting would be to set those variables to have a value of null."</i></p>

<p>#23 strikes me as ludicrous since Math.as is compiled against a native C implementation in Tamarin. I don't have time to test this but I would be absolutely floored if a self-built rounding function implemented in AS3 and running in the AVM as bytecode ran faster than a native call.</p>

<p>For #16, I compiled the following function in a class using asc and compared the opcodes.</p>

<p><b>First attempt with explicit cast to int: 49 opcodes</b><br />
<pre><br />
public function loops() : void<br />
{<br />
	for (var i : int = 0; i 
	{<br />
		trace(i += int(5));<br />
	}<br />
}</pre></p>

<p>function loops():void	/* disp_id 0*/<br />
{<br />
  // local_count=3 max_scope=1 max_stack=4 code_len=50<br />
  0       getlocal0     	<br />
  1       pushscope     	<br />
  2       pushbyte      	0<br />
  4       convert_i     	<br />
  5       setlocal1     	<br />
  6       jump          	L1</p>

<p>  <br />
  L2: <br />
  10      label         	<br />
  11      findpropstrict	trace<br />
  13      getlocal1     	<br />
  14      findpropstrict	int<br />
  16      pushbyte      	5<br />
  18      callproperty  	int (1)<br />
  21      add           	<br />
  22      dup           	<br />
  23      setlocal2     	<br />
  24      convert_i     	<br />
  25      setlocal1     	<br />
  26      getlocal2     	<br />
  27      kill          	2<br />
  29      callproperty  	trace (1)<br />
  32      pop           	<br />
  33      getlocal1     	<br />
  34      increment_i   	<br />
  35      convert_i     	<br />
  36      setlocal1     	<br />
  <br />
  L1: <br />
  37      getlocal1     	<br />
  38      findpropstrict	int<br />
  40      pushbyte      	10<br />
  42      callproperty  	int (1)<br />
  45      iflt          	L2</p>

<p>  49      returnvoid    	<br />
}<br />
</p>

<p><b>Second attempt with no cast to int: 39 opcodes</b><br />
<pre><br />
public function loops() : void<br />
{<br />
	for (var i : int = 0; i 
	{<br />
		trace(i += 5);<br />
	}<br />
}</pre></p>

<p>function loops():void	/* disp_id 0*/<br />
{<br />
  // local_count=3 max_scope=1 max_stack=3 code_len=40<br />
  0       getlocal0     	<br />
  1       pushscope     	<br />
  2       pushbyte      	0<br />
  4       convert_i     	<br />
  5       setlocal1     	<br />
  6       jump          	L1</p>

<p>  <br />
  L2: <br />
  10      label         	<br />
  11      findpropstrict	trace<br />
  13      getlocal1     	<br />
  14      pushbyte      	5<br />
  16      add           	<br />
  17      dup           	<br />
  18      setlocal2     	<br />
  19      convert_i     	<br />
  20      setlocal1     	<br />
  21      getlocal2     	<br />
  22      kill          	2<br />
  24      callproperty  	trace (1)<br />
  27      pop           	<br />
  28      getlocal1     	<br />
  29      increment_i   	<br />
  30      convert_i     	<br />
  31      setlocal1     	<br />
  <br />
  L1: <br />
  32      getlocal1     	<br />
  33      pushbyte      	10<br />
  35      iflt          	L2</p>

<p>  39      returnvoid    	<br />
}<br />
</p>

<p>The added casts throw in more findpropstrict and callproperty opcodes to perform the casts, resulting in more opcodes to be executed. Also, there were no explicit casts from Number to int in the second attempt, so unless the AVM goes out of its way to add them, I doubt they occur. Again, I have not profiled this to see how the AVM reacts to the changes but I would be surprised if more opcodes to execute resulted in increased performance.</p>

<p>- max</p>]]>
    </content>
    <published>2009-04-23T18:05:28Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058208</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058208" />
    <title>Comment from Brandon Ellis on 2009-04-23</title>
    <author>
        <name>Brandon Ellis</name>
        <uri>http://www.brandonellis.org/</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.brandonellis.org/">
        <![CDATA[<p>Hey Sean,<br />
Great list. Some really useful information in there. :)</p>]]>
    </content>
    <published>2009-04-23T19:09:22Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058217</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058217" />
    <title>Comment from mrm on 2009-04-23</title>
    <author>
        <name>mrm</name>
        <uri>http://blogu.lu/mrm/</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://blogu.lu/mrm/">
        <![CDATA[<p>Regarding #18 & #19: <a href="http://twitter.com/gskinner/status/1544926568">http://twitter.com/gskinner/status/1544926568</a></p>

<p>In  #48 you said "obj as Class" is faster than Class(obj) then you use Vector3D(array[i]) in #50 which also contradicts #20</p>

<p>#26 is redundant if you use addEventListener(Event.TYPE, someFunction, false, 0, **true**);</p>

<p>#27 is wrong, as another commenter pointed out</p>]]>
    </content>
    <published>2009-04-23T19:59:16Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058218</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058218" />
    <title>Comment from Aki Lee on 2009-04-23</title>
    <author>
        <name>Aki Lee</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>After more than 20 years of programming experience, I just can say that your post is true only for banchmarking, not for development.<br />
If you are a developer (or even a software architect), you will not use these approaches in most cases. Only for hacks and workarounds. :-)</p>

<p>Keep up the good work!</p>]]>
    </content>
    <published>2009-04-23T20:07:42Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058220</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058220" />
    <title>Comment from Sean Moore on 2009-04-23</title>
    <author>
        <name>Sean Moore</name>
        <uri>http://www.seantheflexguy.com/blog</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.seantheflexguy.com/blog">
        <![CDATA[<p>Thanks a lot for all of the great feedback guys. I agree that some of these are 'hacky'. As mentioned I generally try to strive for clear, understandable code vs tricks. I wanted to gather all of the optimization info from around the web into one article. I'll make the edits mentioned and really appreciate the feedback. I think it's helping to make the article a much stronger source of info. Also please note the two articles I wrote for Adobe on best practices.</p>]]>
    </content>
    <published>2009-04-23T20:25:23Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058221</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058221" />
    <title>Comment from Mark Lapasa on 2009-04-23</title>
    <author>
        <name>Mark Lapasa</name>
        <uri>http://knowledge.lapasa.net</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://knowledge.lapasa.net">
        <![CDATA[<p>I am 5 years shy of flash programming experience, I can say that if your target audience provides you with feedback that your application is not as fast as they would expect, then one must do everything possible. I am a developer that would be more than happy to exercise these tips. In fact, I already have applied some of these tips since I first learned of them from Flex conferences I've attended in the past.</p>

<p>The Flash Player VM, as I've learned over the years, is a beast of it's own kind. What works well in another language may not necessarily work well in AVM. It is it's own animal with it's own quirks. Try...catch() is one such example which I've been told is very expensive where in Java it's not an issue.</p>]]>
    </content>
    <published>2009-04-23T20:28:53Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058223</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058223" />
    <title>Comment from Gwenn on 2009-04-23</title>
    <author>
        <name>Gwenn</name>
        <uri>http://myrddin.fr/blog</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://myrddin.fr/blog">
        <![CDATA[<p>Hi !<br />
I saw on another blog to not use "const" but var instead. You say the opposite. What's the true ?<br />
Then I agree with Paw Suddergaard about the array length.<br />
Thanks.</p>]]>
    </content>
    <published>2009-04-23T20:54:40Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058229</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058229" />
    <title>Comment from Pedro Abrantes on 2009-04-23</title>
    <author>
        <name>Pedro Abrantes</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>@Gwenn:</p>

<p>Well, since const variables don't change, the compiler can replace all const accesses by the value itself, generating an optimized version of the code. In this particular case, I do not think using var would boost performance.</p>]]>
    </content>
    <published>2009-04-23T23:19:53Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058232</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058232" />
    <title>Comment from zguillez on 2009-04-23</title>
    <author>
        <name>zguillez</name>
        <uri>http://www.codigoactionscript.org</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.codigoactionscript.org">
        <![CDATA[<p>wow! great list! thnks ;)</p>]]>
    </content>
    <published>2009-04-23T23:37:03Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058234</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058234" />
    <title>Comment from Joseph on 2009-04-23</title>
    <author>
        <name>Joseph</name>
        <uri>http://flexr.wordpress.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://flexr.wordpress.com">
        <![CDATA[<p>This is Extremely Useful!! Supper Post!!</p>]]>
    </content>
    <published>2009-04-24T01:30:27Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058238</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058238" />
    <title>Comment from Ryan O&apos;Connell on 2009-04-23</title>
    <author>
        <name>Ryan O&apos;Connell</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>Whoa!  There are alot of incorrect things here, I don't know where to begin.  First of all, don't believe eveything you read in a AS3 blogs.  Second of all, the VM has been changing, from 9 to 10, so FYI int / uint / number conversions aren't as slow as they used to be.</p>

<p>The biggest fallacy in this list is this one:</p>

<p>23. Calculate things like floor and round yourself vs. calling Math library</p>

<p>Why do you think an actionscript written floor / round routine will be more efficient than the one written in c++?  Did you mean to write DON'T calculate floor/round in actionscript? What was your reference on this?</p>

<p>BTW I work at Adobe, on actionscript projects.</p>]]>
    </content>
    <published>2009-04-24T02:27:38Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058239</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058239" />
    <title>Comment from Tyler Egeto on 2009-04-23</title>
    <author>
        <name>Tyler Egeto</name>
        <uri>http://www.tyleregeto.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.tyleregeto.com">
        <![CDATA[<p>In regards to Math.floor/round, those static methods calls are pretty slow, faster alternatives are floor -> int(myNumber), round -> int(myNumber + 0.5).</p>]]>
    </content>
    <published>2009-04-24T03:28:48Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058240</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058240" />
    <title>Comment from Sean Moore on 2009-04-23</title>
    <author>
        <name>Sean Moore</name>
        <uri>http://www.seantheflexguy.com/blog</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.seantheflexguy.com/blog">
        <![CDATA[<p>Thanks for the continued feedback on the article. All of the references are listed at the bottom. I pulled all the items in the list from the various references and added code samples that I thought would help illustrate the tips. Sorry for any incorrect tips/advice. All of the sources seemed pretty valid. I am going to update the items that people have supplied the great feedback on.</p>]]>
    </content>
    <published>2009-04-24T03:56:04Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058246</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058246" />
    <title>Comment from Jidolstar on 2009-04-23</title>
    <author>
        <name>Jidolstar</name>
        <uri>http://jidolstar.com/blog</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://jidolstar.com/blog">
        <![CDATA[<p>Wow! Very Good Article.</p>]]>
    </content>
    <published>2009-04-24T06:23:38Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058248</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058248" />
    <title>Comment from Jethro on 2009-04-24</title>
    <author>
        <name>Jethro</name>
        <uri>http://blog.cjtech.co.uk</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://blog.cjtech.co.uk">
        <![CDATA[<p>Well loads of inaccuracy, bad practice and contradiction. <br />
I wont repeat previous posters but one more edit needed...</p>

<p>#6 and #49 seem to contradict each other.</p>]]>
    </content>
    <published>2009-04-24T07:27:24Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058249</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058249" />
    <title>Comment from Jethro on 2009-04-24</title>
    <author>
        <name>Jethro</name>
        <uri>http://blog.cjtech.co.uk</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://blog.cjtech.co.uk">
        <![CDATA[<p>One more...</p>

<p>#51 would only make any sense for null object exception.</p>]]>
    </content>
    <published>2009-04-24T07:31:39Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058250</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058250" />
    <title>Comment from Blackiz on 2009-04-24</title>
    <author>
        <name>Blackiz</name>
        <uri>http://blackiz.tistory.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://blackiz.tistory.com">
        <![CDATA[<p>Great!!!</p>]]>
    </content>
    <published>2009-04-24T07:49:55Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058251</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058251" />
    <title>Comment from am on 2009-04-24</title>
    <author>
        <name>am</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>Jethro, @6 says to avoid new when creating a object, @49 avoid Object insted use CustomObject. Has far as I understands that gives you 3 possibilities:</p>

<p>.1<br />
var obj:CustomObject = {jethro:'i like turtles'};</p>

<p>.2<br />
var obj:CustomObject = new CustomObject ();<br />
obj.jethro = 'i like turtles';</p>

<p>.3<br />
var obj:Object = new Object ();<br />
obj.jethro = 'i like turtles';</p>

<p>I'm no good with this at all, but seam to have some logic... maybe i'm not getting your point...</p>]]>
    </content>
    <published>2009-04-24T07:59:24Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058254</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058254" />
    <title>Comment from Kristofer on 2009-04-24</title>
    <author>
        <name>Kristofer</name>
        <uri>http://reallyaced.wordpress.com/</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://reallyaced.wordpress.com/">
        <![CDATA[<p>Interesting article! If nothing else, this is obviously a great place to find out which performance myths that really are valid. :-)</p>

<p>But I truly agree on Jerry Ela's reminder:"Premature optimization is the root of all evil"...</p>]]>
    </content>
    <published>2009-04-24T08:21:33Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058256</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058256" />
    <title>Comment from Matheus on 2009-04-24</title>
    <author>
        <name>Matheus</name>
        <uri>http://matheusgorino.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://matheusgorino.com">
        <![CDATA[<p>Great post, thanks. But here are some comments:<br />
#4: The ideal is t use "push" instead of setting the new index value?<br />
#6: Doesn't this contradicts the number #49?<br />
#10: You said to create package level functions, but you also said NOT to the 3rd example where you do it.<br />
#11: Could you talk a bit more about that? It's not very clear.<br />
#23: Are you saying that it's better to create our own Math library instead of using the built in one?<br />
</p>]]>
    </content>
    <published>2009-04-24T10:15:15Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058257</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058257" />
    <title>Comment from thibaud on 2009-04-24</title>
    <author>
        <name>thibaud</name>
        <uri>http://www.thibaud.be</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.thibaud.be">
        <![CDATA[<p>#25: is in the wrong order.</p>]]>
    </content>
    <published>2009-04-24T10:31:14Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058265</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058265" />
    <title>Comment from Cliff Meyers on 2009-04-24</title>
    <author>
        <name>Cliff Meyers</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>The sheer number of contradictions, inaccuracies and crazy suggestions (don't use Math.round, really?) is staggering.  Please take this article down until you validate what optimizations are actually true.</p>]]>
    </content>
    <published>2009-04-24T14:41:01Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058267</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058267" />
    <title>Comment from Prashant Jain on 2009-04-24</title>
    <author>
        <name>Prashant Jain</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>Sean,<br />
Great article and eye opener. </p>

<p>It is missing one thing, why is one better or optimized over the other. If that information was there, I would have learnt a lot more.</p>

<p>Hope you can put another article explaining that. Just one line for each would do.</p>

<p>Thanks <br />
Prashant</p>]]>
    </content>
    <published>2009-04-24T15:15:09Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058273</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058273" />
    <title>Comment from Jethro on 2009-04-24</title>
    <author>
        <name>Jethro</name>
        <uri>http://blog.cjtech.co.uk</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://blog.cjtech.co.uk">
        <![CDATA[<p>@am</p>

<p>> .1<br />
> var obj:CustomObject = {jethro:'i like turtles'};</p>

<p>is not valid actionscript.</p>

<p>My point is the two points (6 and 49) contradict each other.</p>

<p>#49 recommends creating custom object (which is good practice anyway), but you have to use the new operator, which in turn contradicts #6!</p>

<p>I think what Sean is trying to get at is...</p>

<p>Use custom object (type) rather than untyped Object. If however you must use plain untyped Object, create it with braces rather than new Object().</p>

<p>However, I think the lesson to learn over this collection of 'hints' is a) dont read every blog post as gospal and b) do your own tests and optimize when needed and c) program to good practice first, optimize later if need be.<br />
</p>]]>
    </content>
    <published>2009-04-24T16:27:29Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058281</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058281" />
    <title>Comment from matt on 2009-04-24</title>
    <author>
        <name>matt</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>I think it would make more sense to the reader if you sad Good vs. Bad instead of using NOT.</p>]]>
    </content>
    <published>2009-04-24T18:09:26Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058290</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058290" />
    <title>Comment from Sean Moore on 2009-04-24</title>
    <author>
        <name>Sean Moore</name>
        <uri>http://www.seantheflexguy.com/blog</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.seantheflexguy.com/blog">
        <![CDATA[<p>Hey All,</p>

<p>Thanks so much for all of the great feedback. All of the offending techniques should now be eradicated from the list. Sorry for any confusion.</p>

<p>Sean</p>]]>
    </content>
    <published>2009-04-24T19:36:09Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058292</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058292" />
    <title>Comment from Isaac on 2009-04-24</title>
    <author>
        <name>Isaac</name>
        <uri>http://www.isaacewing.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.isaacewing.com">
        <![CDATA[<p>Wow, these are some EXCELLENT techniques.  Thank you for posting them.  My only question is about uint.  I was always under the assumption uint was faster than int because it's an unsigned integer.  Also, I thought an integer was faster than number because it deals with whole numbers. My question is: How can a variable that handles real and non real values be more efficient than a variable that handles only real whole numbers?</p>]]>
    </content>
    <published>2009-04-24T20:49:47Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058299</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058299" />
    <title>Comment from Paul Robertson on 2009-04-24</title>
    <author>
        <name>Paul Robertson</name>
        <uri>http://probertson.com/</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://probertson.com/">
        <![CDATA[<p>I won't try to use rule numbers, since it seems that the numbers have changed based on comments that refer to numbers that no longer exist =)</p>

<p>I will say that regarding Array use, in Flash Player 10+/AIR 1.5+ for iteration and retrieving values it's faster to use Vector instead of Array if you can (if all the items have the same type and you don't need a sparse array). If the items aren't the same type, you could use Vector. (which I thought was a programmer joke the first time I saw it) -- in that case I'd predict that iterating would be faster although retrieving values would probably be the same as with Array. Note however that for some operations (specifically splice(), and perhaps others that rearrange elements) benchmarks show that they run 10% slower for Vector than Array.</p>

<p>Also, based on my own performance tests, I found instance methods to run notably faster than identical static methods (not sure why, that's just what I found). I was testing a particular set of methods of course (XML handling if I recall) and my testing was ~3 years ago, but I choose to avoid static methods in most cases and use a singleton instead.</p>

<p>The Vector stuff is in the documentation, and since I wrote that documentation I happen to know that it comes straight from the Flash Player engineers. For the other one, as I mentioned, my only authority is my own performance benchmarks.</p>

<p>Paul Robertson<br />
Adobe AIR/Flash Player/ActionScript documentation team</p>]]>
    </content>
    <published>2009-04-24T23:22:34Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058327</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058327" />
    <title>Comment from auzn on 2009-04-25</title>
    <author>
        <name>auzn</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>copy an array,sometimes "slice" is faster than "concat"  :)</p>]]>
    </content>
    <published>2009-04-25T17:26:13Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058342</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058342" />
    <title>Comment from undersound on 2009-04-25</title>
    <author>
        <name>undersound</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>And what can we develop to have a proper discussion platform instead of lurking around in the comments.  I find this information very valuable but some (read: most) the time the information in the comments is even better.</p>

<p>Again, thanks for sharing this ! Love the flash community</p>]]>
    </content>
    <published>2009-04-26T01:07:37Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058343</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058343" />
    <title>Comment from undersound on 2009-04-25</title>
    <author>
        <name>undersound</name>
        <uri>http://www.1hoog.nl</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.1hoog.nl">
        <![CDATA[<p>And how can we come up with a medium to have a proper discussion instead of lurking around in the comments. I love blogs, but i always find it a bit annoying to look at the discussions in the comments although they are most of the time very good and valuable. I do find it a bit annoying........ah whatever......great post !! </p>

<p>Again, thanks for sharing this ! Love the flash community</p>]]>
    </content>
    <published>2009-04-26T01:12:58Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058379</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058379" />
    <title>Comment from GD on 2009-04-26</title>
    <author>
        <name>GD</name>
        <uri>http://waterxbread.blogspot.com/</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://waterxbread.blogspot.com/">
        <![CDATA[<p>Great article, Thanks</p>]]>
    </content>
    <published>2009-04-27T04:28:31Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058427</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058427" />
    <title>Comment from polyGeek on 2009-04-27</title>
    <author>
        <name>polyGeek</name>
        <uri>http://polyGeek.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://polyGeek.com">
        <![CDATA[<p>Thanks for the post Sean. One thing I've learned is that if you want to solicit some brutal comments then just write about code optimization. :)</p>

<p>This reminds me that I really need to embrace Vectors instead of Arrays in my projects aimed at FP10. I really can't remember the last time I created an array that had mixed types.</p>

<p>That sucks about the Timer being less efficient than the EnterFrame. But I'm going to have to stick with Timer for just about all me interval based code because EnterFrame is too constricting. </p>]]>
    </content>
    <published>2009-04-27T17:41:39Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058428</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058428" />
    <title>Comment from polyGeek on 2009-04-27</title>
    <author>
        <name>polyGeek</name>
        <uri>http://polyGeek.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://polyGeek.com">
        <![CDATA[<p>Thanks for the post Sean. One thing I've learned is that if you want to solicit some brutal comments then just write about code optimization. :)</p>

<p>This reminds me that I really need to embrace Vectors instead of Arrays in my projects aimed at FP10. I really can't remember the last time I created an array that had mixed types.</p>

<p>That sucks about the Timer being less efficient than the EnterFrame. But I'm going to have to stick with Timer for just about all me interval based code because EnterFrame is too constricting. </p>]]>
    </content>
    <published>2009-04-27T17:42:56Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058429</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058429" />
    <title>Comment from polyGeek on 2009-04-27</title>
    <author>
        <name>polyGeek</name>
        <uri>http://polyGeek.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://polyGeek.com">
        <![CDATA[<p>Thanks for the post Sean. One thing I've learned is that if you want to solicit some brutal comments then just write about code optimization. :)</p>

<p>This reminds me that I really need to embrace Vectors instead of Arrays in my projects aimed at FP10. I really can't remember the last time I created an array that had mixed types.</p>

<p>That sucks about the Timer being less efficient than the EnterFrame. But I'm going to have to stick with Timer for just about all me interval based code because EnterFrame is too constricting. </p>]]>
    </content>
    <published>2009-04-27T17:43:21Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058444</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058444" />
    <title>Comment from Ryan Sadwick on 2009-04-27</title>
    <author>
        <name>Ryan Sadwick</name>
        <uri>http://ootie.blogspot.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://ootie.blogspot.com">
        <![CDATA[<p>Great article and comments.  The discussions here are always informative!</p>]]>
    </content>
    <published>2009-04-27T22:16:14Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058445</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058445" />
    <title>Comment from Ryan Sadwick on 2009-04-27</title>
    <author>
        <name>Ryan Sadwick</name>
        <uri>http://ootie.blogspot.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://ootie.blogspot.com">
        <![CDATA[<p>Great article and comments.  The discussions here are always informative!</p>]]>
    </content>
    <published>2009-04-27T22:39:10Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058554</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058554" />
    <title>Comment from Justin Haygood on 2009-04-29</title>
    <author>
        <name>Justin Haygood</name>
        <uri>http://www.eyewonder.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.eyewonder.com">
        <![CDATA[<p>Another optimization:</p>

<p>Opening a local SharedObject channel takes about 100ms. If you can open it only once in your application, you can see a drastic increase in performance in code that uses it</p>]]>
    </content>
    <published>2009-04-29T14:22:10Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058558</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058558" />
    <title>Comment from shaman4d on 2009-04-29</title>
    <author>
        <name>shaman4d</name>
        <uri>http://shaman4d.110.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://shaman4d.110.com">
        <![CDATA[<p>The list has many old information. Also:<br />
1) static methods more time expensive then object methods.<br />
2) use while... loop instead for.... because the first most quickly</p>

<p>   var i:int=a.length;<br />
   while(i-->0)<br />
   {<br />
           ... do what you want....<br />
   }</p>

<p>3) "Length of method/variable names doesn't matter in ActionScript 3.0" - is not so - big-named-variable process more slow<br />
4) There is difference among "if" and "switch" - the first one is faster<br />
5)  "const" declaring and calling more slow then "var"</p>]]>
    </content>
    <published>2009-04-29T14:57:35Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058559</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058559" />
    <title>Comment from shaman4d on 2009-04-29</title>
    <author>
        <name>shaman4d</name>
        <uri>http://shaman4d.110.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://shaman4d.110.com">
        <![CDATA[<p>The list has many old information. Also:<br />
1) static methods more time expensive then object methods.<br />
2) use while... loop instead for.... because the first most quickly</p>

<p>   var i:int=someArray.length;<br />
   while(i-->0)<br />
   {<br />
           ... do what you want....<br />
   }</p>

<p>3) "Length of method/variable names doesn't matter in ActionScript 3.0" - is not so - big-named-variable process more slow<br />
4) There is difference among "if" and "switch" - the first one is faster<br />
5)  "const" declaring and calling more slow then "var"</p>]]>
    </content>
    <published>2009-04-29T14:59:18Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058677</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058677" />
    <title>Comment from JoeB on 2009-04-30</title>
    <author>
        <name>JoeB</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>These are great best practices, however I wish it was more specific about why certain techniques were better than others, and a sense of the memory cost differences between good and bad practices.</p>]]>
    </content>
    <published>2009-05-01T00:43:44Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2058743</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2058743" />
    <title>Comment from Manfred Karrer on 2009-05-02</title>
    <author>
        <name>Manfred Karrer</name>
        <uri>http://blog.screenshot.at</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://blog.screenshot.at">
        <![CDATA[<p>Thanks for the great article!<br />
I would like to add one about databinding:<br />
databinding with BindingUtils is 100% faster then in mxml...<br />
you can find more details under: <a href="http://www.screenshot.at/blog/2009/04/18/databinding-under-the-hood-part-1-performance/">http://www.screenshot.at/blog/2009/04/18/databinding-under-the-hood-part-1-performance/</a><br />
</p>]]>
    </content>
    <published>2009-05-02T10:29:24Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2059103</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2059103" />
    <title>Comment from Rick on 2009-05-08</title>
    <author>
        <name>Rick</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>Can someone clarify these 2?</p>

<p>13. AVM promotes int to Number during calculations inside loops (VM has been changing, from 9 to 10, so int, uint and number conversions aren't as slow as they used to be.)</p>

<p>16. Use integers for iterations </p>

<p><br />
If AVM promotes int to number during a loop, why would you use integers for interations?<br />
</p>]]>
    </content>
    <published>2009-05-08T11:50:52Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2059328</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2059328" />
    <title>Comment from Neil Glenister on 2009-05-11</title>
    <author>
        <name>Neil Glenister</name>
        <uri>http://www.neilglenister.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.neilglenister.com">
        <![CDATA[<p>Great article! </p>

<p>On Point 35 states that we should be using ENTER_FRAME events rather than Timer but it's doesn't say why :s.</p>

<p>This is exactly the opposite to what Adobe recommend which is interesting...Can you let me/us know why we should be using ENTER_FRAME? :)</p>

<p>Cheers</p>

<p>Neil</p>]]>
    </content>
    <published>2009-05-11T16:10:16Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2066017</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2066017" />
    <title>Comment from medyum on 2009-06-11</title>
    <author>
        <name>medyum</name>
        <uri>http://www.medyum.gen.tr/</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.medyum.gen.tr/">
        <![CDATA[<p></p>

<p>The list has many old information. Also:<br />
1) static methods more time expensive then object methods.<br />
2) use while... loop instead for.... because the first most quickly</p>

<p>var i:int=someArray.length;<br />
while(i-->0)<br />
{<br />
... do what you want....<br />
}</p>

<p>3) "Length of method/variable names doesn't matter in ActionScript 3.0" - is not so - big-named-variable process more slow<br />
4) There is difference among "if" and "switch" - the first one is faster<br />
5) "const" declaring and calling more slow then "var"<br />
</p>]]>
    </content>
    <published>2009-06-11T09:12:24Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2067352</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2067352" />
    <title>Comment from Aloe Vera Blogger on 2009-06-28</title>
    <author>
        <name>Aloe Vera Blogger</name>
        <uri>http://www.aloevera-butik</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.aloevera-butik">
        <![CDATA[<p>I like one of your picture. Can I use one of them<br />
</p>]]>
    </content>
    <published>2009-06-28T15:23:44Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2068082</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2068082" />
    <title>Comment from Lee on 2009-07-10</title>
    <author>
        <name>Lee</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>all that you point is 200% right you always always always optimize at the end, and only if you know what you re doing and if you really really need it optimization list lure people by making them think that if they apply every single point of the list they will then be good developers because they wrote very optimized code <a href="http://www.envisionwebhosting.com/domain-registration.htm">domain names</a>, and this is uterly wrong kind of the same thing happen when some dev discover design patterns and try to shoe horn every single one of them in their code  </p>]]>
    </content>
    <published>2009-07-11T03:36:11Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2070046</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2070046" />
    <title>Comment from Helen Hunt on 2009-08-09</title>
    <author>
        <name>Helen Hunt</name>
        <uri>http://jroller.com/bookreview</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://jroller.com/bookreview">
        <![CDATA[<p>Thanks for this awesome tip. I have found quite a few of them very useful not only on Flex applications, but on Java as well.</p>

<p>Thanks again for sharing.</p>]]>
    </content>
    <published>2009-08-09T17:36:56Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2071018</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2071018" />
    <title>Comment from B Matuk on 2009-08-25</title>
    <author>
        <name>B Matuk</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>Thanks for these great tips.  Nice work.<br />
I can only see items #1 to #37.<br />
I don't see a link for page 2 or anything.<br />
Where are the remaining items?<br />
</p>]]>
    </content>
    <published>2009-08-25T20:04:03Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2110383</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2110383" />
    <title>Comment from Jenny on 2009-09-22</title>
    <author>
        <name>Jenny</name>
        <uri>http://research.lawyers.com/blogs/authors/661-Todd-A-Smith</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://research.lawyers.com/blogs/authors/661-Todd-A-Smith">
        <![CDATA[<p>Holy cow - this is awesome.  If only I could have wrote it...</p>]]>
    </content>
    <published>2009-09-22T17:48:35Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2119110</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2119110" />
    <title>Comment from Justin on 2009-09-27</title>
    <author>
        <name>Justin</name>
        <uri>http://noisydesign.com/</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://noisydesign.com/">
        <![CDATA[<p>Very useful man! Much appreciated. </p>

<p>-j</p>]]>
    </content>
    <published>2009-09-27T18:56:56Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2119701</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2119701" />
    <title>Comment from william on 2009-09-28</title>
    <author>
        <name>william</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>    A homework assignment I was recently given for a Java programming class involved a competition to see who could create the most optimized implementation of an interface which was provided by the instructor. It was a challenging and very fun assignment that I think the whole class enjoyed. I didn’t win the competition but still came out a winner because of my heightened interest in application optimization and performance tuning that I gained.</p>

<p>    I’m personally a pretty big fan of coding standards and have been ribbed by many developers over some of the longer method, variable and class names that I sometimes choose <a href="http://www.hostseeq.com/business/debt-consolidation.htm">debt consolidation</a>. I’ve always leaned toward the side of programming that employs standards and frameworks . Rather than spending a ton of time digging around in compiler specs and messing with GC (Garbage Collection) for reasons of performance, tuning and optimization. I was leaving this to the seasoned programmers creating the standards and frameworks I use.</p>]]>
    </content>
    <published>2009-09-28T08:39:31Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2122142</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2122142" />
    <title>Comment from Mikey on 2009-09-30</title>
    <author>
        <name>Mikey</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>Its pretty much effort putting task to get some thing out of the box, i did participate in couple of web and <a href="http://www.seoadvices.com">seo</a> based coding projects, but honestly i failed to get some good position, due to a lot high rated competitor or simply i was not up to the mark. One of my friend is working in java for a <a href="http://www.cheapwebhostingseller.com">website hosting</a> company and he is wins a competition in NC. Well your effort seems very decent and thanks a lot for sharing.</p>]]>
    </content>
    <published>2009-09-30T07:07:02Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2122595</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2122595" />
    <title>Comment from flashmoto cms on 2009-09-30</title>
    <author>
        <name>flashmoto cms</name>
        <uri>http://www.flashmoto.com/</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.flashmoto.com/">
        <![CDATA[<p>awesome article.<br />
btw using BindingUtils is much faster then in mxml.</p>]]>
    </content>
    <published>2009-09-30T14:28:39Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2009://34.36034-comment:2195464</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2009://34.36034" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html#comment-2195464" />
    <title>Comment from misty on 2009-11-21</title>
    <author>
        <name>misty</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>To win any sort of field there are some requirements like in <a href="http://www.businesswebhostingplans.com">canadian web hosting</a> we need the hosting tricks to rank sites.Well i appreciate your efforts that put you in peak.I have recently participated in competition of php coding for <a href="http://www.businesswebhostingplans.com/Budget-Web-Hosting.html">budget web hosting</a> server.I hope will win let see what will be happen.</p>]]>
    </content>
    <published>2009-11-21T11:10:02Z</published>
  </entry>

</feed
