EDIT
Мой первоначальный ответ был неправильным для самой последней части, за исключением, и я должен извиниться за это. Я знал, что Vector имеет ровно четыре реализации «под капотом». (Вы можете найти декомпилированные источники из FP 10 playerglobal.swc в сообщении Роберта Пеннера here) Три из них предназначены для типов номеров (int, uint и Number). Один для типов объектов. Этот последний служит как уловка и принимает все классы, полученные из Object. Вот почему я предположил, что Vector.<Object>
все еще быстрее, чем Array, полагаясь на the information regarding vectors and arrays available from Adobe.
Тем не менее, кажется, что эта информация неверна, или, по крайней мере, она оставляет некоторые важные части:
Хотя Vector.<AnyClassDerivedFromObject>
позволяет строгой типизации, эта информация типа оценивается только во время компиляции (так что вы получить больше безопасности типов), но не во время выполнения - таким образом, по существу преимущества строгих объектов ввода объектов не относятся к производительности. См. this blog post для получения дополнительной информации.
Следовательно, единственные реализации Vector, которые быстрее, чем Array, являются единственными типами чисел (!).
На самом деле, я сделал обширное исследование по этому вопросу, и пришел к выводу, что в то время как Vector.<int>
до 60% быстрее, чем массив целых чисел, все дериваты Vector.<Object>
не равны только в скорости (т.е.Vector.<Object>
выполняет те же действия, что и Vector.<String>
, они также составляют около 20% медленнее чем Array. Я дважды и трижды проверил это, поэтому считаю, что результаты будут достаточно точными.
Верно, что векторы числового типа быстрее, поэтому вы должны использовать их для преимуществ производительности по сравнению с массивом. Но:
END EDIT
Только если вы собираетесь использовать sort()
, sortOn()
или любой другой из удобных функций сортировки массива, вы можете все-таки решили иначе, потому что они являются носителями функций, а также такой действительно быстро. Реализация собственных методов сортировки по Vector, вероятно, не будет соответствовать их скорости.
См. Мой обновленный ответ @ crooksy88. Я опубликовал тестовый код + результаты, которые показывают, что мой оригинал верен, и ответ weltraumpirat явно ошибочен. –