zoukankan      html  css  js  c++  java
  • vector & array

    private static const NUM_LOOPS:int = 15;

    public function VectorTest():void
    {

    var vector:Vector.<int> = new Vector.<int>(1000000);
    var array:Array = new Array(1000000);
    var sTime:Number;

    sTime = getTimer();
    loopArray(array);
    trace("Loop Array Avg (1) : " + ((getTimer() - sTime)));

    sTime = getTimer();
    loopVector(vector);
    trace("Loop Vector Avg (1) : " + ((getTimer() - sTime)));


    sTime = getTimer();
    loopArray(array, false);
    trace("Loop Array Avg (2) : " + ((getTimer() - sTime)));

    sTime = getTimer();
    loopVector(vector, false);
    trace("Loop Vector Avg (2) : " + ((getTimer() - sTime)));

    sTime = getTimer();
    loopArray(array);
    trace("Loop Array Avg (3) : " + ((getTimer() - sTime)));

    sTime = getTimer();
    loopVector(vector);
    trace("Loop Vector Avg (3) : " + ((getTimer() - sTime)));

    }

    private function loopArray(a:Array, isRead:Boolean = true):void
    {
    var len:Number = a.length;

    var n:int;
    for (var i:int = 0; i < NUM_LOOPS; i++)
    {
    for (var k:int = 0; k < len; k++)
    {
    if (isRead)
    n = a[k];
    else
    a[k] = 100;
    }
    }
    }

    private function loopVector(v:Vector.<int>, isRead:Boolean = true):void
    {
    var len:Number = v.length;

    var n:int;
    for (var i:int = 0; i < NUM_LOOPS; i++)
    {
    for (var k:int = 0; k < len; k++)
    {
    if (isRead)
    n = v[k];
    else
    v[k] = 100;
    }
    }
    }

    上面的测试代码,大致输出如下:

    Loop Array Avg (1) : 3074
    Loop Vector Avg (1) : 1749
    Loop Array Avg (2) : 1835
    Loop Vector Avg (2) : 1635
    Loop Array Avg (3) : 1675
    Loop Vector Avg (3) : 1649

    但如果把Loop Array Avg (1) Loop Vector Avg (1) 注释掉,结果会输出如下:

    Loop Array Avg (2) : 1881
    Loop Vector Avg (2) : 1641
    Loop Array Avg (3) : 1794
    Loop Vector Avg (3) : 1704

    可见,array只是慢在写操作上(因为要自动扩容),如果写操作不除非自动扩容时,写操作的速度和vector其实是差不多的。

    至于读操作,array和vector其实是差不多的

  • 相关阅读:
    DocKer 创建容器 镜像端口映射失败
    Window中的Docker 拉取Mysql镜像 并在本地Navicate链接
    Mysql之主从复制
    Nginx 实现负载均衡
    如何将composer设置为全局变量?
    Linux安装telnet
    LINUX 安装扩展(笔记)
    PHP 开发 APP 接口 学习笔记与总结
    504 Gateway Time-out
    Luogu P1542包裹快递【实数域二分】 By cellur925
  • 原文地址:https://www.cnblogs.com/tianlanliao/p/3434580.html
Copyright © 2011-2022 走看看