Scaleform. Сравнение скорости доступа к элементам массива и к элементам словаря

В воспалённом мозгу родился вопрос, что быстрей в Scaleform доступ к элементам массива по ключу или доступ к элементам словаря по ключу, в последнем случае ключём выступают объекты.

Накидал следующий тестовый классец:

import flash.utils.Dictionary;
import flash.utils.getTimer;
var d:Dictionary = new Dictionary(true);
var a:Array = [];
var n:Array = [];
var ob:Object;
for (var i:int = 0; i < 10; i++) {
 a.push(i);
 this['item'+i] = {id:i};
 ob = this['item'+i];
 n.push(ob);
 d[ob] = i;
}
var t:int = getTimer();
var r:int = 0;
for (i = 0; i < 300000; i++) {
 for (var j:int = 0; j < 10; j++) {
 r += a[j];
 }
}
trace(getTimer() - t, r);
r = 0;
t = getTimer();
for (i = 0; i < 300000; i++) {
 for each (ob in n) { 
 r += d[ob];
 }
}
trace(getTimer() - t, r);

Флеш радостно показывал в логах следущее:

29 13500000
230 13500000

Видим что доступ к элементам массива по ключу гораздо быстрей отработал в описанном выше кейсе.

Запускаем Scaleform Player… и о чудо  видим:

1072 13500000
1124 13500000

Жалкое зрелище, душераздирающее зрелище. Но можно сделать вывод, что в Scaleform скорость доступа по ключу к элементам массива сравнима по скорости доступа по ключу (объекту) к элементам словаря. Чем я и воспользуюсь в одном интересном кейсе =)

Поделиться в соц.сетях

Опубликовать в Facebook
Опубликовать в Google Plus
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс
Опубликовать в LiveJournal
Опубликовать в Google Buzz

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>