Another performance post: flash.geom.sealedWhatever
Not sure if I am totally tripping, but I just tried to extend flash.geom.Matrix with a sealed final class version, and it seems to be faster.
1m loops of a matrix.a++, and matrix.concat(matrix);
normal flash.geom.Matrix 871
extended sealed matrix: 853
extended sealed matrix: 853
normal flash.geom.Matrix 871
extended sealed matrix: 852
normal flash.geom.Matrix 870
very interesting indeed. I did a test with a flash.geom.Point, but couldn’t find any results saying it was faster or slower. If any of you find results different than this, please let me know.
package {
import flash.geom.Matrix;
import flash.utils.*;
import flash.display.Sprite;
import flash.events.Event;
public class SpeedTest1 extends Sprite {
public function SpeedTest1():void {
addEventListener(Event.ENTER_FRAME, runTest);
}
private function runTest(event:Event):void {
removeEventListener(Event.ENTER_FRAME, runTest);
var count:int, matrix:Matrix, sealed:SealedMatrix, start:int;
matrix = new Matrix();
sealed = new SealedMatrix();
start = getTimer();
for (count = 0; count < 1000000; count++) {
matrix.a++;
matrix.concat(matrix);
}
trace('matrix', getTimer()-start);
start = getTimer();
for (count = 0; count < 1000000; count++) {
sealed.a++;
sealed.concat(sealed);
}
trace('sealed', getTimer()-start);
start = getTimer();
for (count = 0; count < 1000000; count++) {
sealed.a++;
sealed.concat(sealed);
}
trace('sealed', getTimer()-start);
start = getTimer();
for (count = 0; count < 1000000; count++) {
matrix.a++;
matrix.concat(matrix);
}
trace('matrix', getTimer()-start);
start = getTimer();
for (count = 0; count < 1000000; count++) {
sealed.a++;
sealed.concat(sealed);
}
trace('sealed', getTimer()-start);
start = getTimer();
for (count = 0; count < 1000000; count++) {
matrix.a++;
matrix.concat(matrix);
}
trace('matrix', getTimer()-start);
}
}
}
import flash.geom.Matrix;
final class SealedMatrix extends Matrix {
}

