_localArray.length = 0; // Reset the array to empty
Yesterday I was coding on a rather large application at work and I needed to reset an array I had that was stored as a member variable. My gut instinct was to just take the Array variable and set its length = 0. Although this worked I wasn't sure if it was the best way to reset an array in ActionScript 3. So I asked my friend Guy Wyatt and he sent me this performance benchmark using 100,000 iterations in an Array as a test to see the time it took to clear out this Array using various techniques.
Resetting an empty array over 100,000 iterations in a while(i--) loop
length = 0: 15 ms
splice: 157 ms
new: 145 ms
So it looks like my gut instinct was right to set the length to 0 to reset my Array. I know this isn't the most glamorous blog post but I do think it is important to think about these things while coding a large Flex application. Every little bit of optimization is crucial and can over all help yield a better functioning application.
虽然说是length和new 执行效率最高,但是执行完后的数组元素有没有被垃圾回收,这个暂时就不敢肯定了,看来有必要研究一下AS3的垃圾回收机制了。。。。