AS2优化代码

时间:2012-10-10 20:13:42

标签: optimization actionscript actionscript-2

我正在尝试在代码中实现日志记录机制。我在一些论坛中读到,在AS2中,字符串连接不会在编译时发生,而是在运行时发生。

我想知道以下哪个代码更优:

for (var i:Number = 0; i < n; i++ )
{
    var strToReplace:String = "{" + i + "}";
}

,或者

for (var i:Number = 0; i < n; i++ )
{
    var strToReplace:String = "{%s}".split("%s").join(String(i));
}

我非常感谢您的帮助,因为就AS2而言,我是新手。谢谢。

1 个答案:

答案 0 :(得分:0)

这是一种简单的测试方法:

var n:Number = 100000;

var beforeTime:Number = getTimer();

for (var i:Number = 0; i < n; i++ ) {
  var strToReplace:String = "{" + i + "}";
}

var betweenTime:Number = getTimer();
trace("between : " + (betweenTime - beforeTime));

for (var i:Number = 0; i < n; i++ ) {
  var strToReplace:String = "{%s}".split("%s").join(String(i));
}

var afterTime:Number = getTimer();
trace("after : " + (afterTime - betweenTime));

我得到的痕迹:

  • 之间:269
  • 之后:866

第一种方法快3倍:分割和连接方法必须在字符串中搜索才能执行。

如果你的字符串更大,差异就更大了:第一个方法的持续时间不会改变......第二个方法需要更多的时间。 你应该试试。