Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Закрытая тема
Старый 07.04.2014, 21:36
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 1  
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
По умолчанию Collection в as3

Неделю я изучал коллекции, которые только мог найти и настал момент тестов...

Немного отступлю и расскажу, почему я в названии темы, упомянул слово ОПП.
В блогах, которые закреплены за этим форумом, на гитхабе, в гугл коде - везде есть комментарии,
как создателей, так и посетителей этих страниц. И везде громогласно звучит слово ОПП. Авторы гордятся и уверяют, что их детище самое настоящее ОПП, читатели ( особенно на форуме ) говорят, его слишком мало..

Так вот, настало время тестов и у меня сразу же появилось желание создать тему -
Перебор словаря в цикле с узлами ( Node ) [17.5 секунд] против [2 секунд] перебора с двумя массивами ( ключ:значение).

Перебор массива через итератор [17 секунд] против [2 секунд] просто перебора.

Вот если делать кнопку, то я согласен, что приложение из-за нескольких кликов бы не пострадало,
но работа с массивами, как я считаю, это одна из самых ресурсоемких задач.
И вопрос - неужели стоит делать, закрывая глаза на цифры выше, чтобы кто-то сказал, что это по ОПП?

А когда я думаю об использовании классов узлов-node, так мне вообще кажется, что те кто их использует
для одновременного доступа только к одному свойству, как минимум пришли из языков,
в которых это на скорость не как не сказывается.


Последний раз редактировалось Akopalipsis; 08.04.2014 в 00:06. Причина: test
Старый 07.04.2014, 21:40
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 2  
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Цитата:
Сообщение от Akopalipsis Посмотреть сообщение
Перебор словаря в цикле с узлами ( Node ) [17.5 секунд]
А точно речь идёт о секундах, а не о миллисекундах?

Старый 07.04.2014, 21:45
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 3  
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Есть ли придел одержимости ОПП ?
Этот предел называется Акопалипсис

Цитата:
так мне вообще кажется, что те кто их использует
для одновременного доступа только к одному свойству, как минимум пришли из языков,
в которых это на скорость не как не сказывается.
Советую почитать как работают коллекции в разных языках, какие типы коллекций есть, и в какой ситуации какая из них хороша, а какая не очень. Думаю, сразу станет многое понятно. Те массивы, что есть в ас3 - это жалкое подобие массивов (точнее коллекций, слово массив здесь не совсем подходит, оно более узкое) из более развитых языков. Но в конечном счете, все коллекции построены поверх массивов. А так как количество ячеек в массиве, после его создания, уже изменить невозможно, то внутри классво коллекций создаются новые массивы, больше емкости, чем исходный. Естественно все эти операции будут отнимать процессорное время и жрать память.

Подытожу, что же я хотел сказать, читай про коллекции. И таких вопросов возникать не будет.
Цитата:
А точно речь идёт о секундах, а не о миллисекундах?
Там наверное по миллиарду ячеек перебирается

Старый 07.04.2014, 21:49
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 4  
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Нет, в массиве сто элементов и разница в секундах.
И разница не из-за емкости, а из-за hasNext()... nextData()...

Старый 07.04.2014, 21:53
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 5  
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Сортировка массива из 100 элементов за ___ДВЕ секунды___ - это ничуть не лучше, чем за 5, 10, 17 или 100.
Ибо это должны быть сотые доли миллисекунды.
Что за массив? Он свопится на магнитофонную ленту в процессе обработки?
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Старый 07.04.2014, 21:56
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 6  
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Он свопится на магнитофонную ленту в процессе обработки?
Да тут граммпластинкой попахивает

Старый 07.04.2014, 23:34
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 7  
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
А Вы скорость выполнения на одной итерации мерите?

И я последовал совету и прочел уже тройку статей о коллекции в ява программировании.
И первое, что мне бросается - классы коллекции отличаются друг от друга тем, что одни позволяют быстро
получить элемент по ключу, вторые добавлять в начало и конец, третьи для работы с элементами лежащими
в середине...
Везде, везде и ещё раз везде написано о мизерном приросте производительности..
И у меня в связи с этим вопросы - в ява массив имеет те же методы, что и в as3?
А то на мой взгляд, который я имею сейчас, коллекция - это классы, которые в композиции имеют свойство с типом Array и... и так же содержат методы, которые и так есть в классе Array.
Но за счет того, что все это происходит через композицию, они замедляют родной массив и для этого
ещё нужно разделить все на несколько классов, чтобы одни добавляли в конец, другие в середину, делая
это так, как-будто в родном массиве нет push, pop и splice. И ещё все нужно хранить в нодах, которые замедляют, как создание, так и обращение к свойству data... И после того, как замедлили родной массив
почти в десять раз, нужно помнить, что ArrayList отличается от LinkedList...

Чего вот я не понимаю? Почему нормальным считается сначала замедлить в десять раз при помощи нод и
методов, которые и так уже существуют у массива, а потом говорить, что один немного, да быстрее?

Все ещё читаю статьи java и даже заглянул в доки. Не смог найти там хотя бы один метод для работы с массивами.
Получается, что коллекция в яве, это единственный инструмент для работы с хранилищем данных?
И если так, то зачем в as3 нужна коллекция в том виде, в котором она представлена в яве?

И я очень надеюсь на Ваш ответ!!! Так-как много слышал на форуме о коллекциях, видел, как используют другие,
опытные программисты, но не вижу смысла.

Добавлено через 40 минут
Так же был бы рад, если тот, кто помнит тему о коллекции в разделе as3, написал здесь ссылку на эту тему.
я почему-то был уверен, что она у меня в закладках и наступит время, когда я её прочту, но её там нет или тема называется так, что по названию не поймешь. Все что я помню, так это то, что alexcon314 ( вроде бы ) давал ссылку на пример реализации коллекции на as3.


Последний раз редактировалось Akopalipsis; 08.04.2014 в 00:11.
Старый 08.04.2014, 00:44
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 8  
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Закрыто, ибо название темы не отражает сути вопроса, да и вопроса я не наблюдаю.
...
Akopalipsis, дружище, когда вы, наконец, займетесь лепкой пельменей?
Присутствующим просьба - не кормите троля, у меня жир уже залил стол и на пол капает.

Создать новую тему Закрытая тема Часовой пояс GMT +4, время: 02:16.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 02:16.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.