标签归档:Vector

Vector.unshift bug已修复

package  
{
    import flash.display.Sprite;
    import flash.system.Capabilities;

    /**
     * www.litefeel.com
     * [email protected]
     * @author lite3
     */
    public class VectorTest extends Sprite
    {

        private var list:Vector.<MyClass> = new Vector.<MyClass>();

        public function VectorTest() 
        {
            trace(Capabilities.version);
            var n:int = 3;
            while (n--)
            {
                //list.length++;
                list.unshift(new MyClass());
                trace(list);
            }
        }

    }

}
class MyClass{}

输出:

WIN 10,0,22,87
[object MyClass]
[object MyClass],[object MyClass]
[object MyClass],[object MyClass],[object MyClass]

Array Vector 性能测试

想做个对象池,以降低CPU销毁,以前都是用Array做的。
帮助上说flashplayer10的Vector速度要比Array的速度快的多今天特来测试下。
不过测试结果令我大失所望。

  1. push :  Vector慢,   Array 快  (可以忽略)
  2. pop : Vector快,   Array 慢 (可以忽略)

这样的结果让我对Vector的性能产生了怀疑,又测试了下Vector的的存取速度。

  1. 读取:  Vector快,   Array 慢  (可以忽略)
  2. 存储:  Vector慢,   Array 快 (可以忽略)

看来Vector在对Array的性能较量中并不占优势。
只是Vector是单一元素类型的数组,拥有Array所没有的类型检查。

结论:做对象池还是用Vector吧,不管性能了。

下面是测试代码:
继续阅读 →