一些关于ActionScript 3.0性能的优化

原文:http://www.rozengain.com/blog/2007/05/01/some-actionscript-30-optimizations/

我一直在研究ActionScript优化并且得到了一些有趣的成果。这里并没有多少新的东西,许多都能从我最下面引用的文章找到。


数组索引

让我们通过一个数组的简单循环开始:
private function method1() : void
{
	var tmpVar:int;

	for(var i:Number=0; i<testArray.length; i++)
	{
		tmpVar = testArray[i];
	}
}
通过该方法50次循环,我们得到的平均运行时间是53.34毫秒。现在我们将变量类型Number改为int:
for(var i:int=0; i<testArray.length; i++)
由此得到的平均运行时间为35.58毫秒。这是由于用整形作为数组的索引运行起来会更快。我们也可以将数组长度存放于循环外部来进一步提高运行速度。
var l:int = testArray.length;

for(var i:int=0; i<l; i++)
时间花费:21.6毫秒!

来自其他类里的常量

在使用其他类里的常量时我发现有一个优化方法。以下面这段代码为例:

var tmpVar:int;

for(var i:Number=0; i<100000; i++)
{
	tmpVar = SomeClass.SOME_CONSTANT;
}
需要运行时间为34.08毫秒。如果我们将常量使用放到循环外部,像这样:
var tmpVar:int;
var myConstant:int = SomeClass.SOME_CONSTANT;

for(var i:Number=0; i<100000; i++)
{
	tmpVar = myConstant;
}
现在只消耗了15.8毫秒。

初始化变量

以下方法初始化变量:
for(var i:int=0; i<100000; i++)
{
	var v1:Number=10;
	var v2:Number=10;
	var v3:Number=10;
	var v4:Number=10;
	var v5:Number=10;
}
花费46.52毫秒。我们可以使用一个"var"关键字将变量声明在一行里,例如:
for(var i:int=0; i<100000; i++)
{
	var v1:Number=10, v2:Number=10, v3:Number=10, v4:Number=10, v5:Number=10;
}
平均运行时间为19.74毫秒。

位运算符

位运算符也可以提高性能。以乘法运算和除法运算作为
for(var i:int=0; i<100000; i++)
{
	var val1:int = 4 * 2;
	var val2:int = 4 * 4;
	var val3:int = 4 / 2;
	var val4:int = 4 / 4;
}
平均时间:49.12毫秒,使用位运算符可以减到35.56毫秒:
for(var i:int=0; i<100000; i++)
{
	var val1:int = 4 << 1;
	var val2:int = 4 << 2;
	var val3:int = 4 >> 1;
	var val4:int = 4 >> 2;
}
这仅仅是九牛一毛。更多关于该主题的内容可以通过以下文章了解:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值