Prueba este código en Flash:¿Por qué i = i + 1 es más rápido que i ++?
var i:int = 0;
for (var j:int = 0; j < 5000000; j++)
{
i=i+1;
}// use about 300ms.
i = 0;
for (var j:int = 0; j < 5000000; j++)
{
i++;
}// use about 400ms
i = 0;
for (var j:int = 0; j < 5000000; j++)
{
++i;
}// use about 400ms too
¿Por qué es más rápido i=i+1
en ActionScript 3 cuando es más lenta que en otros?
Disculpe, me equivoco. El código anterior utiliza el mismo tiempo. pero si lo pone en funcionamiento, y el resultado será diferente.
var i:int;
var j:int;
var startTime:Number;
function func1():void
{
i = i + 1;
}
function func2():void
{
i++;
}
startTime = getTimer();
i = 0;
for (j = 0; j < 10000000; j++)
{
func1();
}
trace(getTimer() - startTime);//5 times:631,628,641,628,632
startTime = getTimer();
i = 0;
for (j = 0; j < 10000000; j++)
{
func2();
}
trace(getTimer() - startTime);//5 times:800,814,791,832,777
puede usted Tiempos 10 la longitud del bucle, y asegúrese de que realmente hay una diferencia? – scientiaesthete
¿Qué quiere decir con "más lento en los demás"? Otros lenguajes de programación? ¿Cuáles? –
Una pequeña nota al margen: no importa si tiene una configuración release/debugbuild ('permiso de depuración' en FlashIDE), y los resultados también podrían variar en un release-and debugplayer. http://jacksondunstan.com tiene muchas pruebas de rendimiento muy detalladas para varios jugadores. –