This was posted in the scripting and backend forum... but I think it would benifit more people here. I've picked out a few interesting paragraphs below, but take some time to read the whole article, its very interesting.

http://flasm.sourceforge.net/#optimization

the old "obsolete" flash 4 syntax still performs faster than nice dot scripts
Why is flash 5-style coding slower than old flash 4 actions? Casper Shuirink found out the funny practice of flash player 5: new classes and methods are created internally using actionscript! Including string algorithms, array and movieclip methods - everything. Most of them are wrapped around flash 4 actions. Look into Caspers's findings. And again: it's not a visual representation, it's actual script used internally in flash 5.
The worst example: myMC.gotoAndStop(), which is 25 times slower than tellTarget("myMC") gotoAndStop().
Use tellTarget instead of with where possible.
Avoid multiple parallel hitTest() functions in events - often seen in games. If the player is killed after any touch with an enemy, and you have 100 duplicated enemy clips, don't include any code in the enemy clip enterFrame event. Create the new mc and insert the enemy clip here. Then duplicate inside of this parent clip. Now you can check with only one hitTest() if the collision takes place. If you need to, use some custom math then to calculate what enemy was hit. Since most of the time no collision occurs, you'll make a really big improvement in fps.