Archive for June, 2010

AS3 vs. JavaScript Performance Followup (June 2010)


Version 5.0 of Safari was released on just a couple weeks ago on June 8 and Google Chrome was updated just a week before that. More importantly, to this site anyways, is the release of Flash Player 10.1 on June 10. Today’s article shows an updated performance comparison to check up on the progress being made in both JavaScript (Safari, Chrome) and AS3 (Flash Player).

Read the rest of this article »


Functional Methods

Tags: , , , , ,

Both Array and Vector have some methods that allow AS3 programmers to do some functional programming: every, filter, forEach, map, and some. These can lead to flexible and concise code, but at what performance cost? Today I’ll test them to get a handle on just how much speed you’re giving away by using these methods.

Read the rest of this article »

No Comments

Declaring Vectors

Tags: , , , , , ,

The differences between Vector and Array have been quite interesting since Vector was introduced in Flash Player 10. Until just recently I didn’t know that there was special syntax for declaring a Vector akin to Array's special a = [1,2,3,4,5] trick. This got me thinking about the various ways one can declare a Vector and, of course, how they’re implemented in bytecode and what the speed differences, if any, are. Read on for some nitty gritty about how you declare Vectors in AS3.

Read the rest of this article »


Variable Ordering

Tags: , , , ,

I recently perused the AVM2 bytecode overview that Adobe provides and found something strange: they have special instructions for the first few local variables. Getting the first local variables is done by getlocal0, getlocal1, getlocal2, getlocal3, but then a generalized getlocal is used for local variables thereafter. This brought me to think about the performance implications of these specialized instructions. After all, why have them when you already have a generalized one? Read on to see the performance differences and if you can get any speed boost from rearranging your local variables.

Read the rest of this article »