• Vector 类和 Array 类


    /*尽可能使用 Vector 类而不是 Array 类。 
    Flash Player 10 引入了 Vector 类,其读写访问速度比 Array 类快。
    一个简单的基准就可说明 Vector 类与 Array 类相比的优势所在。以下代码显示 Array 类的基准:
    */
    var coordinates:Array = new Array(); 
    var started:Number = getTimer(); 
    for (var i:int = 0; i< 300000; i++) 
    { 
        coordinates[i] = Math.random()*1024; 
    } 
    trace(getTimer() - started); 
    // output: 107 以下代码显示 Vector 类的基准:
    
    var coordinates:Vector.<Number> = new Vector.<Number>(); 
    var started:Number = getTimer();  
    for (var i:int = 0; i< 300000; i++) 
    { 
        coordinates[i] = Math.random()*1024; 
    } 
    trace(getTimer() - started); 
    // output: 72 通过为矢量分配特定长度并将其长度设为固定值,可进一步优化此示例:
    // Specify a fixed length and initialize its length 
    var coordinates:Vector.<Number> = new Vector.<Number>(300000, true); 
    var started:Number = getTimer();  
    for (var i:int = 0; i< 300000; i++) 
    { 
        coordinates[i] = Math.random()*1024; 
    } 
    trace(getTimer() - started); 
    // output: 48 如果不提前指定矢量的大小,
    //则矢量大小将在矢量用完空间后增加。
    //每次矢量大小增加时,都将分配一个新的内存块。
    //矢量的当前内容会复制到新内存块中。
    //这种额外的分配和复制数据会降低性能。
    //以上代码通过指定矢量的原始大小针对性能进行了优化。
    //但是,代码没有针对可维护性进行优化。为了还能够提高可维护性,将重用的值存储在常量中:
    // Store the reused value to maintain code easily 
    const MAX_NUM:int = 300000; 
    var coordinates:Vector.<Number> = new Vector.<Number>(MAX_NUM, true); 
    var started:Number = getTimer();  
    for (var i:int = 0; i< MAX_NUM; i++) 
    { 
        coordinates[i] = Math.random()*1024; 
    }  
    trace(getTimer() - started); 
    // output: 47 尽可能尝试使用 Vector 对象 API,因为它们的运行速度可能更快。
    
  • 相关阅读:
    HPB 是什么
    HPB共识算法选举机制描述
    【CS231n】斯坦福大学李飞飞视觉识别课程笔记(六):线性分类笔记(上)
    大讲堂专访丨连接Oracle DBA与开发的桥梁:Oracle的redo与undo
    SCN风波又起,2019年6月之前Oracle必须升级吗?
    去面试Python工程师,这几个基础问题一定要能回答,Python面试题No4
    OpenStack 的单元测试
    创建docker镜像的两种方式
    Vue.js 条件渲染 v-if、v-show、v-else
    Linux下Wiki服务器的搭建
  • 原文地址:https://www.cnblogs.com/602147629/p/1991391.html
Copyright © 2020-2023  润新知