递减While循环排序Javascript

Decrementing While Loop ordering Javascript

本文关键字:Javascript 排序 循环 While 递减      更新时间:2023-09-26

这实际上是我关于javascript的第一篇文章。想知道,以下代码的性能,因为它是一个"递减while循环"里面的while循环有一个递增变量。

var i = data.d.length;
var i_counter=0;

while (i--)
{
   console.log(i_counter++)
}

我添加i_counter++的原因是为了排序。它会轻微影响数千条记录的循环性能吗?下面的代码会比上面的性能好吗?

for (var i = 0; i < data.d.length; i++) {
   console.log(i)
}

我在网上看过一个在线循环压力测试,这表明递减while是最好的。这是真的吗?http://jsperf.com/fastest-array-loops-in-javascript/32请帮我对代码进行压力测试。谢谢你!

在这两种情况下,运行时都由console.log控制,它执行潜在的阻塞IO(日志函数通常不便宜,特别是当它们产生可见的控制台/UI输出时)。

假设console.log是无操作的,第一个代码应该有一点优势,因为d.length不会在每次迭代中重新求值(在未优化的情况下,这是两次字典查找)。一个非常智能的JS运行时可以避免这种情况,即使是第二种情况。

最好的建议是,在分析代码的哪些部分是真正的瓶颈之后,优化最后的。FF和Chrome都有内置的分析工具。

对于完美的JS循环迭代,看看这个相关的SO问题。在每次迭代中进行额外的增量不应该显著地影响事情。