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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.11.2010, 14:12
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 41  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
А вот разница между кодом
Код AS3:
public var myarr:Array = new Array();
		private function init(e:Event = null):void 
		{
			myarr[100000000] = 1;
			trace(getSize(myarr));//48
			return;
		}
и
Код AS3:
public var myarr:Vector.<*> = new Vector.<*>();
		private function init(e:Event = null):void 
		{
			myarr.length = 100000001;
			myarr[100000000] = 1;
			trace(getSize(myarr));//56
			return;
		}
Где Array автоматом length меняет, Vector - вручную, собсно и всё (ведь внутрях Array, на которые некоторым начхать, вполне может быть, что и сидит вектор, который автоматом увеличивает length просто) - она тоже несущественна? =)
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.


Последний раз редактировалось -De-; 11.11.2010 в 14:19.
Старый 11.11.2010, 14:20
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 42  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
вполне может быть, что и сидит вектор, который автоматом увеличивает length просто)
Vector и Array (судя по тестам) не имеют ничего общего. Если бы внутри Array сидел вектор, то он бы возвращал null при обращении к пустому элементу, и проигрывал бы Vector абсолютно во всех тестах, чего не происходит.

Старый 11.11.2010, 14:20
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 43  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
Код AS3:
			var v:Vector.<int> = new Vector.<int>(10000, false);
			trace(getSize(v));
			v[10000] = 1;
			trace(getSize(v));
			v.push(3);
			trace(getSize(v));
			v.length = 40000000;
			trace(getSize(v));
			v[4000000] = 2;
			trace(getSize(v));
У меня везде 48.

В твоём тесте везде 56.

Hero SDK, 10.1.

Старый 11.11.2010, 14:21
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 44  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
P.S. это если предыдущего поста, как доказательства мало.

Добавлено через 5 минут
Цитата:
У меня везде 48.
Вот что у меня выдало на твой тест:
Код:
v:  40056
v:  50060
v:  50060
v:  160000056
v:  160000056
Тоже Hero SDK и плеер 10.1.85.3

Старый 11.11.2010, 14:53
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 45  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Цитата:
Сообщение от alatar Посмотреть сообщение
Если бы внутри Array сидел вектор, то он бы возвращал null при обращении к пустому элементу
Ну а он возвращает undefined. В чем разница? Если пишут null писать undefined, если пишут undefined - писать null, читать тоже наоборт и разницы не будет.
Цитата:
Сообщение от alatar Посмотреть сообщение
и проигрывал бы Vector абсолютно во всех тестах, чего не происходит.
Почему проигрывал? Vector - типизированный Array, вот он и должен выигрывать за счёт того, что его эл-ты не надо преобразовывать лишний раз.
Ну т.е. я думал Array это типа adobe_std::vector<Object>, Vector.<typename> это adobe_std::vector<typename>.
Оказалось, что с вектором всё где-то так и есть, а вот Array это скорее adobe_std::map<int,Object> - разница огромная.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 11.11.2010, 15:23
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 46  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Можно к элементу Vector-массива обратиться как vec["1"] ? А к элементу Array-массива?

Старый 11.11.2010, 16:11
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 47  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
Почему проигрывал? Vector - типизированный Array, вот он и должен выигрывать за счёт того, что его эл-ты не надо преобразовывать лишний раз.
Я ж наверное не спотолка это взял. Сколько раз надо привести вам факты, что бы вы обратили на них внимание, а не на свои собственные предположения?
in в векторе медленнее, чем в массиве.
hasOwnProperty в векторе медленнее, чем в массиве.
обращение к несуществующему интексу: в массиве 51 мс, в векторе 1597мс на 1000000 итераций.
Еще раз привожу пруфлинк: http://jacksondunstan.com/articles/855
Пустой массив на 8 байт меньше вектора.
http://jacksondunstan.com/articles/663
Да в большинсве случаев вектор быстрее, чем массив, но это не означает, что внутри массива есть вектор.

Старый 11.11.2010, 17:40
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 48  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
"проигрывал бы Vector абсолютно во всех тестах" - как такое может быть, если у Array внутре Vector?
Я вообще про то, что внутри у них всё равно могла бы быть одна вектороподонбая структура, просто криво некоторые методы/операторы вектору прописали, вот тесты и показывают разное. Причем судя по документации, так оно и есть "В любом случае, когда используется объект Array, все элементы которого относятся к одному и тому же типу данных, предпочтительным является экземпляр Vector.", например.
Но вот тесты показывают, что не в любом.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 11.11.2010, 17:45
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 49  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Увы в английком имена не склоняются. Там написано "проигрывал бы вектору"

Старый 11.11.2010, 17:49
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 50  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
Цитата:
Я вообще про то, что внутри у них всё равно могла бы быть одна вектороподонбая структура
Скажу больше. Внутри у обоих машинные коды. Вам уже легче? =)

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

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

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


 


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


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