我正在开发一个专门用于实用程序的库。它将具有帮助您操作的功能:字符串、数组、数字、对象等。性能是主要关注点。在处理字符串的重复函数(重复字符串n
多次)时,我决定测试我当前方法的速度:
Array(n + 1).join(string); // n = times to repeat; string = string to copy
与仅使用循环进行比较。事实证明,虽然这是重复字符串的最短方式,但也是最慢的。我明白它仍然很快。我的意思是,人类不可能在 1 秒内完成 200,000 件事情,但与循环相比,它很慢。
是什么让循环如此之快?我注意到一个特别快的循环是 while 循环,它包含i--
:
var i = 10;
while (i--) {
// do stuff
}
我决定使用这种方法,因为它是最快的。但我想知道为什么?是什么让它比其他方法快得多?
这是我的基准。while 循环比 for 循环慢的唯一浏览器是 Opera。在 Internet Explorer 10 中速度特别快。