> а я как дурак в своём флексовом проекте везде uint понавставлял
var n = getTimer()
for (var i:Number = 0; i < 16777215; i+=1){}
trace("Number", getTimer()-n) // 166
n = getTimer()
for (var j:int = 0; j < 16777215; j+=1){}
trace("int", getTimer()-n) // 91
n = getTimer()
for (var k:uint = 0; k < 16777215; k+=1){}
trace("uint", getTimer()-n) // 91
Денис Коляко
______________________________________________________________________
e...@timezero.ru | http://etcs.ru/ | http://www.timezero.ru/
думаю, все дело в том, какой тип имеет единица.
в случае ++ мы складываем два значения одного типа (происходит
дублирование элемента в стеке).
а в случае с += мы складываем исходный тип с константой типа int.
import flash.utils.getTimer;
var a:uint = 0;
var b:uint = 1;
var s:uint = getTimer();
for (var i:int = 0; i<0xFFFFFF; i+=1) {
a += b;
}
trace(getTimer()-s); // 215
var c:uint = 0;
var d:int = 1;
s = getTimer();
for (i = 0; i<0xFFFFFF; i+=1) {
c += d;
}
trace(getTimer()-s); // 70
--
Michael Antipin
______________________________________________________________________
n...@design.ru | http://www.artlebedev.ru | http://www.noregret.org