
Método: concat()
var t:Number = getTimer();
var txt1:String = "Esto es";
var txt2:String = "una prueba de rendimiento";
var txt3:String = "de concatenacion de cadenas"
var txt:String;
for(var i:uint = 0;i < 1000000; i++){
txt = txt1.concat(" ", txt2, " ",txt3);
}trace(getTimer() - t);
Resultado: 2034 ms
Método: operador +
var t:Number = getTimer();
var txt1:String = "Esto es";
var txt2:String = "una prueba de rendimiento";
var txt3:String = "de concatenacion de cadenas"
var txt:String;
for(var i:uint = 0;i < 1000000; i++){
txt = txt1 + " " + txt2 + " " + txt3;
}trace(getTimer() - t);
Resultado: 894 ms
Conclusión: sumar Strings con + es 2 veces más rápido que utilizar el método concat() de la clase String().
Método: Math.min() / Math.max()
var t:Number = getTimer();
var n1:Number = 234;
var n2:Number = 675
var n:Number;
for(var i:uint = 0;i < 1000000; i++){
n = Math.min(n1,n2);
}trace(getTimer() - t);
Resultado: 149 ms
Método: condicionales
var t:Number = getTimer();
var n1:Number = 234;
var n2:Number = 675
var n:Number;
for(var i:uint = 0;i < 1000000; i++){
n = (n1>n2)?n2:n1;
}trace(getTimer() - t);
Resultado: 25 ms
Conclusión: una vez más, hacerlo "a mano" es más rápido.
Método: división
var t:Number = getTimer();
for(var i:uint = 0;i < 10000000; i++){
var n:Number = i / 2;
}trace(getTimer() - t);
Resultado: 226 ms
Método: multiplicación
var t:Number = getTimer();
for(var i:uint = 0;i < 10000000; i++){
var n:Number = i * .5;
}trace(getTimer() - t);
Resultado: 225 ms
Conclusión: esta era una de las "leyendas urbanas" que siempre habia oido pero nunca habia testeado. Por lo que he estado investigando, hasta alguna versión de FP9, era más rápido multiplicar que dividir un número, pero en las nuevas versiones de Flash Player ya no es así.
Bueno, en realidad no es del todo mentira. Multiplicar era mejor que dividir hasta alguna versión de Flash Player 9. Desde entonces el rendimiento es el mismo, pero toda la gente que tenga players anteriores seguirá "notando" la diferencia.