以下适用于 As3,C#,Js,Java 等大部分基于ECMA标准的语言
//逻辑编程部分
1。 uint,int,number,float 等数字类型中,int速度最快,而不是一般人认为的uint.
2。 集合对象 Array,Object,自定义类 中, 速度是 自定义类 > object > Array
3。 移位运算可以大幅提高数学计算的效率 (我提交的时候QQ说我这句有非法字符。。)
例:大约快了300%
x = x * 2;
x = x * 64;
//相当于:
x = x << 1;
x = x << 6;
4。取整时,用int() 比 Math.floor 要快得多(10倍以上)
5。取绝对值: ,*-1 比 Math.abs要快.如
var test:Number = n < 0 ? n * -1 : n;快于var test:Number = Math.abs(n);
6。变量越短越好(老外说的)
7。静态变量的速度大概要慢于普通变量10%。(是不是很吃惊?至少在as3里是这样的)
8。构造数组和对象的时候,new Array() and new Object()要比 [] and {}慢3倍的时间
9。list[int(0)] 比list[0]要快,强制转换int在很多地方都可以试一下。
10。 delete 比把这个对象设为null 更消耗资源!虽然看上去更优雅一点,但代价是不值得的。
11。list[list.length] = xxx; 要比 list.push(xxx) 快6倍。(简单来说,关系到构造函数的都会变慢)
12。清空一个数组时,如果它比较短,可以用=[]来解决,如果比较长,用length=0会更快。
13。交换变量可以不用声明一个临时变量,而是通过xor来解决:
a = a^b;
b = a^b;
a = a^b;
14。乘法运算总是比除法要快,大约是快1。3倍。
//视觉编程部分(大部分指AS3)
1。如果斜方向移动容器产生抖动,那么让每个移动的像素变为整数可以解决。
2。cacheAsbitMap可以使拼凑型的图形提高10倍以上的性能。
3。任何不需要鼠标响应的容器都应该加上MouseEnable=false
4。任何不需要透明通道的容器都应该加上自动背景。
5。不要将太多效果依赖于像素级碰撞,除非是做小游戏。
6。操作bitmapdata所产生的特效(如云雾,光晕)非常节省性能。
//逻辑编程部分
1。 uint,int,number,float 等数字类型中,int速度最快,而不是一般人认为的uint.
2。 集合对象 Array,Object,自定义类 中, 速度是 自定义类 > object > Array
3。 移位运算可以大幅提高数学计算的效率 (我提交的时候QQ说我这句有非法字符。。)
例:大约快了300%
x = x * 2;
x = x * 64;
//相当于:
x = x << 1;
x = x << 6;
4。取整时,用int() 比 Math.floor 要快得多(10倍以上)
5。取绝对值: ,*-1 比 Math.abs要快.如
var test:Number = n < 0 ? n * -1 : n;快于var test:Number = Math.abs(n);
6。变量越短越好(老外说的)
7。静态变量的速度大概要慢于普通变量10%。(是不是很吃惊?至少在as3里是这样的)
8。构造数组和对象的时候,new Array() and new Object()要比 [] and {}慢3倍的时间
9。list[int(0)] 比list[0]要快,强制转换int在很多地方都可以试一下。
10。 delete 比把这个对象设为null 更消耗资源!虽然看上去更优雅一点,但代价是不值得的。
11。list[list.length] = xxx; 要比 list.push(xxx) 快6倍。(简单来说,关系到构造函数的都会变慢)
12。清空一个数组时,如果它比较短,可以用=[]来解决,如果比较长,用length=0会更快。
13。交换变量可以不用声明一个临时变量,而是通过xor来解决:
a = a^b;
b = a^b;
a = a^b;
14。乘法运算总是比除法要快,大约是快1。3倍。
//视觉编程部分(大部分指AS3)
1。如果斜方向移动容器产生抖动,那么让每个移动的像素变为整数可以解决。
2。cacheAsbitMap可以使拼凑型的图形提高10倍以上的性能。
3。任何不需要鼠标响应的容器都应该加上MouseEnable=false
4。任何不需要透明通道的容器都应该加上自动背景。
5。不要将太多效果依赖于像素级碰撞,除非是做小游戏。
6。操作bitmapdata所产生的特效(如云雾,光晕)非常节省性能。