![]() |
|
||||||||||
|
|||||
|
Да помню тут на форуме была беседа, че-то найти ее не могу.
Или там было сказано, что для int'а быстрее работает i+=1, чем i++. Точно не скажу, может кто еще помнит? P.S. Я после тех постов стал юзать только Number с i++ в циклах for. |
|
|||||
|
[+1 14.08.08]
[+1 20.08.08] |
эм...
вообще-то быстрее не Number а int. И i++ быстрее, чем i+=1 Более того, i++++++++ все еще быстрее, чем i+=1
__________________
~ Never trouble trouble till trouble troubles you! |
|
|||||
|
Что быстрее,
int, i++ или Number, i++ ? Здесь же сравнивали. Вы помните эту thread? |
|
|||||
|
Хорошо, убедили.
Если найду посты - напишу. |
|
|||||
|
провел тесты:
возможно что то не так... смотрите сами, но оказалось намбер не всегда медленнее инта. ну поправите если не прав. вот код ниже результаты var t=0;
var maxiteration:uint=1E7
var i_number:Number=0;
var i_int:int=0;
var i_uint:uint=0;
var i_notype=0;
t=getTimer();
for (var i:uint=0;i<maxiteration;i++){
i_number++;
}
trace("Number++.Itaration "+maxiteration+":"+(getTimer()-t));
t=getTimer();
for (i=0;i<maxiteration;i++){
i_int++;
}
trace("Int++.Itaration "+maxiteration+":"+(getTimer()-t));
t=getTimer();
for (i=0;i<maxiteration;i++){
i_uint++;
}
trace("Uint++.Itaration "+maxiteration+":"+(getTimer()-t));
t=getTimer();
for (i=0;i<maxiteration;i++){
i_notype++;
}
trace("Notype++.Itaration "+maxiteration+":"+(getTimer()-t));
for (i=0;i<maxiteration;i++){
i_number+=1;
}
trace("\nNumber+=.Itaration "+maxiteration+":"+(getTimer()-t));
t=getTimer();
for (i=0;i<maxiteration;i++){
i_int+=1;
}
trace("Int+=.Itaration "+maxiteration+":"+(getTimer()-t));
t=getTimer();
for (i=0;i<maxiteration;i++){
i_uint+=1;
}
trace("Uint+=.Itaration"+maxiteration+":"+(getTimer()-t));
t=getTimer();
for (i=0;i<maxiteration;i++){
i_notype+=1;
}
trace("Notype+=.Itaration "+maxiteration+":"+(getTimer()-t));
результаты: Последний раз редактировалось ramshteks; 31.08.2008 в 18:16. |
|
|||||
|
стервочка (я мужик)
|
ramshteks, вчём вы тестили? если во флесе, то у меня всё Number толькой 3й по скорости. если во флэше, то оберните всё это в одну функцию, что бы перменные стали локальными, а не создавались как свойства класса, и тогда результат будет как и во флексе.
|
|
|||||
|
ок, ща попробуемс
|
|
|||||
|
если я таки правильно понял BlooDHounD и сделал вс прально, то прошу оценить.
код: function TypesTest(max:uint) {
var t:uint=getTimer();
var i_int:int=0;
for (var i:uint=0; i<max; i++) {
i_int++;
}
trace("Int++.Itaration "+max+":"+(getTimer()-t));
var i_uint:uint=0;
for (i=0; i<max; i++) {
i_uint++;
}
trace("Uint++.Itaration "+max+":"+(getTimer()-t));
var i_number:Number=0;
t=getTimer();
for (i=0; i<max; i++) {
i_number++;
}
trace("Number++.Itaration "+max+":"+(getTimer()-t));
var i_notype=0;
t=getTimer();
for (i=0; i<max; i++) {
i_notype++;
}
trace("Notype++.Itaration "+max+":"+(getTimer()-t));
i_int=0;
for (i=0; i<max; i++) {
i_int+=1;
}
trace("\nInt+=.Itaration "+max+":"+(getTimer()-t));
i_uint=0
for (i=0; i<max; i++) {
i_uint+=1;
}
trace("Uint+=.Itaration "+max+":"+(getTimer()-t));
i_number=0;
t=getTimer();
for (i=0; i<max; i++) {
i_number+=1;
}
trace("Number+=.Itaration "+max+":"+(getTimer()-t));
i_notype=0;
t=getTimer();
for (i=0; i<max; i++) {
i_notype+=1;
}
trace("Notype+=.Itaration "+max+":"+(getTimer()-t));
}
TypesTest(1e8);
Int++.Itaration 100000000:550 Uint++.Itaration 100000000:1113 Number++.Itaration 100000000:1203// меня это порадовало, так как я уже начал думать что надо все намберами для скорости обьявлять. Notype++.Itaration 100000000:4347 Int+=.Itaration 100000000:4922 Uint+=.Itaration 100000000:5493 Number+=.Itaration 100000000:1203//интересный результат, в код вроде все верно. Notype+=.Itaration 100000000:7434 |
|
|||||
|
[+1 14.08.08]
[+1 20.08.08] |
эм... чувак =) а ты переменную с текущим таймингом только один раз перед Number+= обновляешь =)
мозг включи
__________________
~ Never trouble trouble till trouble troubles you! |
![]() |
![]() |
Часовой пояс GMT +4, время: 15:19. |
|
|
« Предыдущая тема | Следующая тема » |
|
|