Actionscript优化教程 高级优化2 |
| 作者:佚名 来源:闪吧 作者: Marco Lapi,alias Lap 更新:2007-1-13 20:48:02 错误报告 我要投稿 |
5)单独声明变量vs.同时声明多个变量

尽可能地同时为多个变量赋值。
这样可以使速度有细微的提高。
如果您有这样一段代码:
|
a = 0;
b = 0;
c = 0;
d = 100;
e = 100;
|
那么请换成下面的方式:
6)查找变量名

这个测试展示节省查找变量名的时间是多么重要,特别是在一个循环结构中尤其如此。与其在每轮循环中调用Math.random(),不如定义一个对该函数的引用,这将节省您的时间,因为函数名只在进入循环体之前被处理一次。
例如:
|
var num = null;
t = getTimer();
for (var i = 0; i<MAX; i++) {
num = Math.floor(MAX)-Math.ceil(MAX);
}
t1.text = "Always lookup: "+(getTimer()-t);
|
就不如这个好:
|
t = getTimer();
var floor = Math.floor;
var ceil = Math.ceil;
for (var i = 0; i<MAX; i++) {
num = floor(MAX)-ceil(MAX);
}
|
7)短变量名vs.长变量名

变量名应该尽可能地短。
在这个测试里面您可以看到多长的变量名会对速度造成负面的影响。
在优化代码中的关键部分时,我们建议使用非常短的变量名(1或2个字符)
8)在循环体中声明变量vs.在循环之前声明变量

在对这一条进行测试之前我们以为在循环结构开始之前声明一个局部变量可以节省多余的时间,但是测试结果恰恰相反。
|
// Inside
t = getTimer();
for (var i = 0; i<MAX; i++) {
var test1 = i;
}
t1.text = "Inside:"+(getTimer()-t);
// Outside
t = getTimer();
var test2;
for (var i = 0; i<MAX; i++) {
test2 = i;
}
|
9)使用嵌套if

在使用复杂条件表达式的时候可以对代码进行优化,将它们分散成嵌套在一起的单个条件。
这样您不需要每次都计算所有的表达式。
下面的代码是用来对这一基准进行测试的:即便是在条件表达式非常简单的情况下,速度的提高也是显著的。
既然您可以发现表达式得到false值是在第3个条件的位置,因此您甚至可以将它放在第2或第1个位置以获取更好的性能。
|
MAX = 20000;
a = 1;
b = 2;
c = -3;
d = 4;
var i = MAX;
while (--i>-1) {
if (a == 1 && b == 2 && c == 3 && d == 4) {
var k = d*c*b*a;
}
}
var i = MAX;
while (--i>-1) {
if (a == 1) {
if (b == 2) {
if (c == 3) {
if (d == 4) {
var k = d*c*b*a;
}
}
}
}
}
|
10)嵌套循环(for vs. while)

嵌套循环是一种普通的编辑技术,用来访问2维的数据,例如一个tile based game中的地图数组,等等。正如您所希望的一样,前面的测试中使用while循环产生更好的效果。
|
|
| 文章录入:skyuu 责任编辑:skyuu |
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |