愚人呓语 eidiot’s blog. My flapdoodles.

1六/07

[AS3]数据存取方式效率比较

  通常我们存取数据有如下几种方式:Array, Object, 自定义类, 比较特殊的还有 Point, Rectangle 等。效率依次为(后面的数字是100万次存取运算平均所需时间):

  • 自定义类public属性135 | Point140 | Rectangle(x等属性)140
  • Array270
  • Object500 | 自定义动态类动态属性550
  • Rectangle(left等属性)700
  • 自定义类getter/setter1000 | 自定义类Function1000

  出乎意料,最快的是自定类的public属性,速度是Array的两倍Object的四倍getter/setter的八倍——很整的倍数关系。另外存取坐标要用Point和Rectangle,比Array快的多。Object还是少用吧,多用自定义类。
  另外自定义密封类(sealed,默认)和自定义动态类(dynamic)的public属性、getter/setter速度几乎一样,而动态类动态添加的属性和Object相若。

相关日志

  • ephay
    记得在您另一篇关于AStar的文章里提到,因为考虑到速度,用Array来存储坐标,而不是用Point,那时候还没做过这样的测试?
  • lomo5
    哇!这数据是怎么测试出来的?
blog comments powered by Disqus