10 javascript performance for-loop
我刚刚安装了Aptana Studio进行开发,其中一个可用的Javascript命令是Insert a for循环,如下所示:
for (var i=0; i < Things.length; i++) {
Things[i]
};
Run Code Online (Sandbox Code Playgroud)
另一个选项是Insert Improved for loop,如下所示:
for (var i = Things.length - 1; i >= 0; i--){
Things[i]
};
Run Code Online (Sandbox Code Playgroud)
为什么最后一个比第一个好?
h2o*_*ooo 12
// ( A ) ( B ) (C)
for (var i=0; i < Things.length; i++) {
Things[i]
};
Run Code Online (Sandbox Code Playgroud)
Things
每次迭代的长度属性.)也就是说,通过更改循环获得的性能很小,并且您可能会牺牲部分可读性,因此坚持使用您认为最具可读性的内容 - 而不是最正确的性能.
这可能对你更有意义:
for (var i=0; i < Things.length; i++) {
Things[i] = null;
};
Run Code Online (Sandbox Code Playgroud)
可以改写如下:
var i = 0; //A
while (true) {
if (!(i < Things.length)) { //B - We check the length all the time
break;
}
Things[i] = null;
i++; //C
}
Run Code Online (Sandbox Code Playgroud)
和
for (var i = Things.length - 1; i >= 0; i--){
Things[i] = null;
};
Run Code Online (Sandbox Code Playgroud)
可以改写如下:
var i = Things.length - 1; //A - We only check the length once
while (true) {
if (!(i >= 0)) { //B
break;
}
Things[i] = null;
i--; //C
}
Run Code Online (Sandbox Code Playgroud)
因为每次(每次迭代)都没有评估Things.length的结果.它刚刚在开始时分配一次,并从那时开始使用.除此之外,迭代次数显然是相同的.
它真的是微观优化.您会发现在我的代码中可以找到更多有趣的东西来优化.
归档时间: |
|
查看次数: |
4755 次 |
最近记录: |