Вектор.‹› против массива

Каковы плюсы и минусы использования Vector.<> вместо array?


person Ilya Boyandin    schedule 15.07.2009    source источник
comment
В качестве примечания, это должно быть помечено как flex4 flashplayer10.   -  person bug-a-lot    schedule 16.07.2009


Ответы (5)


На странице документации Adobe:

Из-за своих ограничений Vector имеет два основных преимущества по сравнению с экземпляром Array, все элементы которого являются экземплярами одного класса:

  • Производительность: доступ к элементам массива и итерации выполняются намного быстрее при использовании экземпляра Vector, чем при использовании Array.
  • Безопасность типов: в строгом режиме компилятор может идентифицировать ошибки типа данных, такие как присвоение вектору значения неправильного типа данных или ожидание неверного типа данных при чтении значения из вектора. Однако обратите внимание, что при использовании метода push() или метода unshift() для добавления значений в вектор типы данных аргументов не проверяются во время компиляции, а проверяются во время выполнения.
person Arno    schedule 15.07.2009
comment
Спасибо Арно! Это только плюсы, а есть и минусы? Что касается лучшей производительности Vector: некоторые люди сообщают об обратном: см. impossiblearts.com/blog/2008/06/18/fp10-vector-vs-array/ и bugs.adobe.com/jira/browse/FP-1802 - person Ilya Boyandin; 15.07.2009
comment
Конечно, похоже, что производительность не может быть лучшим аргументом в пользу векторов прямо сейчас. Опять же, надо уже привыкнуть к тому, что и Flex framework sdks, и flash player далеко не свободны от ошибок. - person bug-a-lot; 16.07.2009
comment
На мой взгляд, большие минусы в том, что он очень новый, поэтому немного глючит и что не у всех есть FP10. В этом тесте Майка Чемберса: mikechambers.com/blog/2008/08/19/ в его тесте не является большой разницей между двумя числами. Если ваше приложение не сильно зависает в больших списках, я бы выбрал Array. - person Arno; 16.07.2009

Pro: Vector быстрее, чем Array - например. см. это: Быстрое кодирование JPEG с помощью Flash Player 10

Против: Vector требует FP10, и, согласно http://riastats.com/, около 20% пользователей все еще используют FP9

person tst    schedule 15.07.2009
comment
На момент написания этого комментария необнаруженная версия + flash 9 тактируется на 4% - person ADB; 24.10.2011

Векторы быстрее. Хотя для последовательной итерации похоже, что быстрее всего работают связанные списки.

Векторы также могут быть полезны для операций с растровыми изображениями (проверьте BitmapData.setVector, а также BitmapData.lock и unlock).

person user143149    schedule 23.07.2009

Пример связанного списка, упомянутый ранее в комментариях, написан неправильно, хотя он пропускает нечетные узлы и из-за этого перебирает только половину одних и тех же данных. Неудивительно, что он получил такие отличные результаты, может быть, и быстрее с правильным кодом, но не такая же разница в %. Цикл устанавливает current = current.next слишком много раз (как в цикле, так и в качестве условия цикла) на каждой итерации, что вызывает такое поведение.

person Community    schedule 12.08.2009

Согласно веб-сайту проникновения флеш-плеера, он немного выше. Около 85%

Это источник

person Arno    schedule 15.07.2009