flash - work - swfobject video player




В Flash Player 10 с векторами, почему вы должны использовать Array? (4)

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

Это типичная торговля: память и скорость :-)

Есть ли причина придерживаться массивов в качестве структуры данных списка по умолчанию в AS3, если вы нацеливаете Flash Player 10? Почему бы не использовать Vectors (типизированные массивы) по умолчанию во всей вашей программе, поскольку они:

  • Быстрее
  • тип проверен

Он плохо работает или имеет более высокие накладные расходы на память? Любые причины больше использовать массивы?


Много причин. Например, векторы не являются малонаселенными, так что если ваш Вектор имеет индекс 999, у вас есть массив из 1000 элементов. В стандартном массиве у вас может быть всего одно.


Это зависит от того, что вы пытаетесь сделать. Попробуйте сортировать вектор? Это займет гораздо больше времени. Вам понадобится сплайсировать массив или вектор? В этом случае вы, вероятно, захотите вытолкнуть их обоих и использовать связанный список. Если вы ищете что-то с именованными ключами, которые вам нужно ссылаться, тогда вы, вероятно, будете использовать словарь. Это неопределенный, бесполезный ответ - «это зависит» - но это действительно так. Есть причина, почему так много разных структур списка данных.


Я отвечаю на свой вопрос, исходя из того, что я узнал о проблеме.

Векторы быстрее для этих типов данных ТОЛЬКО: - ( доказательство )

  • ИНТ
  • UINT
  • Число
  • логический

Массивы предпочтительны для всех других типов:

  • Струны
  • классы

Векторы более ограничены для работы с:

  • чтение / запись ограничено
    • несуществующие слоты нельзя установить напрямую с помощью [5] = Val
    • несуществующие слоты не могут быть прочитаны (или вы получите исключение)
  • должен нажать (), чтобы создать слоты
  • сортировка медленнее

Векторы более сложны:

  • многомерные массивы не могут быть преобразованы в вектор
  • вектор не может быть преобразован в многомерный массив
  • не может работать с String.split ()
  • фиксированный тип для всех элементов - неприменим для JSON

Векторы легче отлаживать:

  • установка [Vector of ints] в вектор [Vector of ints] будет вызывать исключение
  • ошибки компиляции (в некоторых случаях)
    • при попытке установить [Вектор ints] в [Вектор строк]
    • при попытке установить вектор [Vector of ints] в вектор [Vector of ints]