przetestować ten kod Flash:Dlaczego i = i + 1 jest szybsze niż 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
Dlaczego i=i+1
szybciej w ActionScript 3, gdy jest wolniejszy w innych?
Przepraszam, popełniam błąd. Powyższy kod stosuje się w tym samym czasie. , ale jeśli wprowadzisz go do funkcji, a wynik będzie inny.
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
Można razy 10 długości pętli, a także upewnić się, że naprawdę jest różnica? – scientiaesthete
Co masz na myśli mówiąc "wolniej w innych?" Inne języki programowania? Które? –
Mała uwaga poboczna: Ma znaczenie, jeśli posiadasz release-/debugbuild (ustawienie "zezwalaj na debugowanie" w FlashIDE), a wyniki mogą się różnić w odtwarzaczu release i debugplayer. http://jacksondunstan.com ma wiele bardzo dogłębnych testów wydajności dla kilku graczy. –