__i
21.06.2006, 14:39
Тут скорее не вопрос, а факты которые поломали мое сознание %((
тестировал на производительность работы циклов fori и fore для массива и объекта получил вот такие интересные данные:
версия плеера: 6 7(сама среда флеш MX 2004) 7(отдельно) 9(IE)
результаты
запуск1 fore - 1031 ms fore - 3094 ms fore - 625 ms fore - 187 ms
fori - 1594 ms fori - 266 ms fori - 250 ms fori - 594 ms
fore in array - 1125 ms fore in array - 3406 ms fore in array - 656 ms fore in array - 219 ms
запуск2 fore - 953 ms fore - 3484 ms fore - 578 ms fore - 187 ms
fori - 1594 ms fori - 266 ms fori - 266 ms fori - 578 ms
fore in array - 1062 ms fore in array - 3313 ms fore in array - 640 ms fore in array - 235 ms
по этим результатам получаеться что в большенстве случаем обычный цикл вообще сосет!.
В 8 у меня небыло, но как раз с него все и началось(знокомы тестил) - в нем fori тоже сосет !
исходный код флешки
_root.createTextField('tf',1,0,0,200,200);
mc = _root.createEmptyMovieClip(bt,2);
mc.beginFill(0,100);
mc.lineTo(20,0);
mc.lineTo(20,20);
mc.lineTo(0,20);
mc.lineTo(0,0);
mc.endFill();
mc._x=200;
mc.onRelease = function (){
_root.test();
}
_root.test = function(){
var c:Object = new Object();
var d:Array = new Array();
var i:Number = 100000
for (; --i; ){
c['c'+i] = i
d[i] = {nm:'c'+i, val:i}
}
t = new Date().getTime();
for (var i:String in c){
c[i] = 12;
}
_root.tf.text += 'fore - '+(new Date().getTime() - t) + ' ms\n';
t = new Date().getTime();
var i:Number = 100000
for (; --i;){
d[i].val = 12;
}
_root.tf.text += 'fori - '+(new Date().getTime() - t) + ' ms\n';
t = new Date().getTime();
for (i:String in d){
d[i].val = 12;
}
_root.tf.text += 'fore in array - '+(new Date().getTime() - t) + ' ms\n';
}
Жду коментариев...
тестировал на производительность работы циклов fori и fore для массива и объекта получил вот такие интересные данные:
версия плеера: 6 7(сама среда флеш MX 2004) 7(отдельно) 9(IE)
результаты
запуск1 fore - 1031 ms fore - 3094 ms fore - 625 ms fore - 187 ms
fori - 1594 ms fori - 266 ms fori - 250 ms fori - 594 ms
fore in array - 1125 ms fore in array - 3406 ms fore in array - 656 ms fore in array - 219 ms
запуск2 fore - 953 ms fore - 3484 ms fore - 578 ms fore - 187 ms
fori - 1594 ms fori - 266 ms fori - 266 ms fori - 578 ms
fore in array - 1062 ms fore in array - 3313 ms fore in array - 640 ms fore in array - 235 ms
по этим результатам получаеться что в большенстве случаем обычный цикл вообще сосет!.
В 8 у меня небыло, но как раз с него все и началось(знокомы тестил) - в нем fori тоже сосет !
исходный код флешки
_root.createTextField('tf',1,0,0,200,200);
mc = _root.createEmptyMovieClip(bt,2);
mc.beginFill(0,100);
mc.lineTo(20,0);
mc.lineTo(20,20);
mc.lineTo(0,20);
mc.lineTo(0,0);
mc.endFill();
mc._x=200;
mc.onRelease = function (){
_root.test();
}
_root.test = function(){
var c:Object = new Object();
var d:Array = new Array();
var i:Number = 100000
for (; --i; ){
c['c'+i] = i
d[i] = {nm:'c'+i, val:i}
}
t = new Date().getTime();
for (var i:String in c){
c[i] = 12;
}
_root.tf.text += 'fore - '+(new Date().getTime() - t) + ' ms\n';
t = new Date().getTime();
var i:Number = 100000
for (; --i;){
d[i].val = 12;
}
_root.tf.text += 'fori - '+(new Date().getTime() - t) + ' ms\n';
t = new Date().getTime();
for (i:String in d){
d[i].val = 12;
}
_root.tf.text += 'fore in array - '+(new Date().getTime() - t) + ' ms\n';
}
Жду коментариев...