Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 循环排序时递减_Javascript - Fatal编程技术网

Javascript 循环排序时递减

Javascript 循环排序时递减,javascript,Javascript,这实际上是我第一篇关于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.

这实际上是我第一篇关于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)
}
for(变量i=0;i
我在网上看到了一个在线循环压力测试,这表明减少while是最好的。 这是真的吗?
请给我一把小提琴来对代码进行压力测试。非常感谢。建议是可以接受的。

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

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

最好的建议是,在分析代码的哪些部分是实际瓶颈之后,优化最后一个。FF和Chrome内置了用于此目的的分析工具


对于完美的JS循环迭代,请查看。在每次迭代中增加一个额外的增量不应该对事情产生显著影响。

没有“性能”问题。出于所有实际目的,它们都需要同样的工作量:使用最清晰的形式。您好,非常感谢您的建议,您能为我提供一个关于代码压力测试的示例吗?谢谢,我们能看到的唯一缓慢的操作是console.log。这是昂贵的。递减或递增不是。因此,我上面提供的代码仍然比这段代码快得多?对于(var i=0;i