我正在尝试在代码中实现日志记录机制。我在一些论坛中读到,在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而言,我是新手。谢谢。
答案 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));
我得到的痕迹:
第一种方法快3倍:分割和连接方法必须在字符串中搜索才能执行。
如果你的字符串更大,差异就更大了:第一个方法的持续时间不会改变......第二个方法需要更多的时间。 你应该试试。