我正在尝试在我的代码中实现日志记录机制。我在一些论坛上读到,在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而言。谢谢。
发布于 2012-10-11 16:41:20
下面是一种简单的测试方法:
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
第一种方法快3倍: split和join方法必须在字符串内部搜索才能执行。
如果你的字符串更长,差别就更大:第一个方法的持续时间不会改变……第二个需要更多的时间。你应该试试。
https://stackoverflow.com/questions/12827572
复制相似问题