| Author |
Message |
|
|
makc, да, если так посмотреть на дело то действительно скорость почти одинаковая, но надо заметить что твоя реализация динам. списка однонаправлена и мягко говоря идеальная
|
 |
|
|
|
Видишь ли я как то не нашел как по индексу достучатся до элементов динамического списка (подозреваю что в этой реализации это невозможно), есть пропертя size которая указывает количество элементов в списке (и я надеюсь что это именно существующие элементы, а не просто "забронированое" пространство (ну типа как ведет себя ArrayList в Java)), а вот как по индексу вытянуть элемент помоему нет, потому приходится проверять через hasNext() (да и где то видел пример с подобной конструкцией).
|
 |
|
|
|
Спасибо за объяснение. Это классно. Можно что то интересное придумать с этим.
|
 |
|
|
Привет всем форумчанам. Есть непонятки по производительности. Где то здесь на форуме (то ли в блоге альтернативы) да и на других ресурсах читал о том что скорость доступа к Object быстрее чем скорость доступа к элементам Array, то есть, если создать динамический список, то хоть создание происходит дольше зато потом скорость доступа к элементам намного выше чем к элементам Array. Захотел проверить насколько все-таки быстрее и написал не большой тест. Как реализацию динамического списка взял известную библиотеку для игровых структур данных AS3DS. Реализовал замер производительности, как создания так и доступ к элементам, для таких контейнеров как: DLinkedList – двух направленный динам. список, SLinkedList – односторонний динам. список, Array и Array с предустановленным количеством элементов (почему то подумал что этот вариант должен был бы быть быстрее чем Array с неизвестным к-вом элементов, но это оказалось не так ). Ну так вот оказалось все абсолютно не так как ожидалось:
создание Array происходит как минимум в два раза быстрее (от 2 до 6). Но это ладно, черт с ним;
извлечение (доступ) данных в Array в среднем на ПОРЯДОК!!! быстрее чем у динам. списка;
А вот это уже плохо. Объясните почему так. Может быть я что напутал. В аттаче готовая SWF и исходник, посмотрите кому не влом.
У меня получились такие результаты (в Internet Explorer):
Create and set DLinkedList
Time creation = 578 ms
Create SLinkedList
Time creation = 500 ms
Create and set Array
Time creation = 140 ms
Create and set FixedArray
Time creation = 141 ms
Extract DLinkedList
Extraction time = 157 ms
Extract SLinkedList
Time extaction = 156 ms
Extract Array
Extraction time = 15 ms
Extract FixedArray
Extraction time = 15 ms
P.S. В самой программе я думаю все интуитивно понятно (сначала тыкаем кнопочку создать требуемый контейнер с данными, а потом делаем ему extract. Можно задать количество засечиваемых объектов (по-умолчанию 100000), Reset Result обнуляет все контейнеры. Да и произведите несколько раз одну и туже операцию чтобы усреднить результаты, часто бывают завышены числа).
P.P.S. Кстати в Google Chrome результаты работы динам. списков намного быстрее, но тенденция таже - массивы быстрее.
|
 |
|
|
Не ну может кто расскажет как это технически реализовано? Как создается такая иллюзия, ну хотя бы приблизительный принцип действия.
|
 |
|
|
Всем привет. Вот тут ссылочку нашел http://www.boffswana.com/news/ , может кто объяснит как это происходит.
Если это Papervision делает то Alternativa тоже наверно должна это уметь делать.
|
 |
|
|
Чисто ради интереса хотелось бы узнать, Ваши классы быстрее работают чем эти? Проводили ли вы тесты на производительность? Или у вас просто классы заточены для своих нужд
|
 |
|
|
Привет. Недавно лазил по нету и наткнулся на вот такую штуку и подумал может быть это будет вам полезно, а может быть вы об этом знаете, короче на всякий случай http://code.google.com/p/as3ds/ .
|
 |
|
|