Mar*_*rty 3 actionscript-3 data-structures
由于无法动态创建向量,我不得不创建一个非常原始的类型,即Object:
var list:Vector.<Object> = new Vector.<Object>();
Run Code Online (Sandbox Code Playgroud)
我假设Vector从尽可能接近的方式获得了它的能力,而不是上面的,但我可能是错的,当使用上面的代替普通的数组或对象时,实际上仍然有收益:
var list:Array = [];
var list:Object = {};
Run Code Online (Sandbox Code Playgroud)
有没有人对此有任何见解?
Vector. <Object>与Array相比,你不会获得任何好处,反之亦然.即使你有一个更紧密耦合的矢量,如Vector.<Foo>,底层数据结构也是一样的.如果您使用值类型,唯一的优化收益.原因是Ecmascript仍然是后期绑定,所有引用对象共享相同的引用字节结构.
但是,在Ecmascript 4中(其中Actionscript是一个实现),Vector泛型数据类型添加了对元素访问的边界检查(非向量只会增长数组),因此功能略有不同,因此CPU时钟周期的数量会有所不同一点点.然而,这可以忽略不计.