AS3 Code Optimization一些代码优化的
1.首先是Array:
建议使用var a = []; 而不是var a = new Array();
2.最快的数组复制方式:
var copy : Array = sourceArray.concat();
记得曾经有人做过测试,的确是concat速度最快。
3.数组的赋值速度不如从别的数组获得值:
employees.push(employee);
employees[2] = employee;
速度不如var employee : Employee = employees[2];
4.使用const 来定义常量
public const APPLICATION_PUBLISHER : String = "Company, Inc.";
5.如果一个类不会再被继承,要使用final前缀:
public final class StringUtils
6.变量和函数的长度在as3中并无限制:
比如:someCrazyLongMethodNameDoesntReallyImpactPerformanceTooMuch();
当然这也长的离谱了,理论上来说尽量在2-4个单词吧,。说起来,Objective C里边的函数名都这样长……
7.尽量不要使用一行式的声明:
var i=0; j=10; k=200;虽然可以,但是不规范。
8.if和switch的内存占用量是一样的?这个。。。还是建议看需求吧,明显分支的就用switch吧。
9.尽量定义各种变量的类型。
10.尽量少用uint,根据AVM的机制,似乎在运行时会将uint和int转化为Number运行。不过这个怎么说呢,我觉得不应该牺牲代码易读性来优化代码的速度。
11.用int做迭代,而不是Number:
(var i: int = 0; i < n; i++) NOT for (var i: Number = 0; i < n; i++) ;
12.用乘法来代替出发:
instead of 5000/1000 use: 5000*0.001;
13.应该在循环外定义表达式的值,而不是在循环体内:
如:for (..){ a * 180 / Math.PI; }
应该声明declare: toRadians = a*180/Math.PI; outside of the loop
同样的:
var len : int = myArray.lengh;
for (var i=0;i
而不应该是for (var i=0;i< myArray.lengh;i++){...}