【问题标题】:Vector.<> vs array向量.<> vs 数组
【发布时间】:2010-11-10 22:43:04
【问题描述】:

使用Vector.&lt;&gt; 而不是array 的优缺点是什么?

【问题讨论】:

  • 附带说明,这应该标记为 flex4 flashplayer10。

标签: arrays actionscript vector flashplayer-10


【解决方案1】:

来自adobe documentation page

由于其限制,与元素都是单个类的实例的 Array 实例相比,Vector 有两个主要优点:

  • 性能:使用 Vector 实例时数组元素访问和迭代比使用 Array 时快得多。
  • 类型安全:在严格模式下,编译器可以识别数据类型错误,例如将不正确数据类型的值分配给 Vector 或在从 Vector 读取值时期望错误的数据类型。但是请注意, 当使用 push() 方法或 unshift() 方法向 Vector 添加值时,不会在编译时检查参数的数据类型,而是在运行时检查。

【讨论】:

  • 谢谢阿诺!这些只是优点,还有一些反面吗?关于 Vector 更好的性能:有些人报告相反:见 impossiblearts.com/blog/2008/06/18/fp10-vector-vs-array/…bugs.adobe.com/jira/browse/FP-1802
  • 现在看起来性能可能不是向量的最佳卖点。再说一次,人们应该已经习惯了这样一个事实,即 Flex 框架 sdks 和 flash 播放器都远非无缺陷。
  • 在我看来,大反派是非常新的,所以有点小车,并不是每个人都有 FP10。在迈克钱伯斯的这个测试中:mikechambers.com/blog/2008/08/19/… 在他的测试中这两个数字之间的差异并不大。如果您的应用程序没有大量挂在大列表上,我会选择 Array。
【解决方案2】:

Pro:Vector 比 Array 快 - 例如看到这个:Faster JPEG Encoding with Flash Player 10

相反:Vector 需要 FP10,据 http://riastats.com/ 称,大约 20% 的用户仍在使用 FP9

【讨论】:

  • 在发表此评论时,未检测到的版本 + flash 9 时钟在 4%
【解决方案3】:

根据 Flash 播放器渗透率网站,它要高一些。大约 85%

This is the source

【讨论】:

    【解决方案4】:

    向量更快。虽然对于顺序迭代the fastest thing seems to be linked-lists

    矢量也可用于位图操作(查看 BitmapData.setVector,也可查看 BitmapData.lock 和解锁)。

    【讨论】:

      【解决方案5】:

      之前在 cmets 中提到的链表示例写错了,虽然它跳过了奇数节点,因此只迭代了一半的相同数据。难怪他得到了如此出色的结果,使用正确的代码也可能更快,但不同的百分比差异。循环设置 current = current.next 一次太多(在循环中和作为循环条件)每次迭代都会导致该行为。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-26
        • 1970-01-01
        • 2014-08-08
        • 1970-01-01
        • 2021-07-15
        • 2013-03-09
        • 2022-08-22
        • 2016-05-31
        相关资源
        最近更新 更多