前端性能优化:循环内部优化

来源:互联网 发布:网页编程用什么语言 编辑:程序博客网 时间:2024/05/29 10:10

代码优化,首先应该优化循环,但循环处理展开,判断条件的优化,还有其他方式吗?

其实在操作系统中介绍了系统会优化的一个方法,就是循环不变量外提。其实在for循环中把长度定义在循环外就是循环不变量外提。

1循环不变量外提

 var lengtharr = t.length;         for (var i = 0; i < lengtharr; i++) {             total += t[i];         }  

js中由于使用的是原型链的访问方式,因此局部变量的访问速度最快,链条越长访问越慢。因此可以把链条变短。例如:

var lengtharr=t.length;for(var i=0;i<lengtharr;i++){ syt.name.index.total+=t[i].;}

改为:

var total=syt.name.index.total;var lengtharr=t.length;for(var i=0;i<lengtharr;i++){ total+=t[i].;}

其实也可以算是另一种的循环不变量

2使用原始方法,避免使用封装的方法。

最典型的例子莫过于jQuery的each方法比原始的for循环效率低很多

3减少内部必要的判断逻辑

 例如可以展开循环减少判断,针对具体的情况取消不必要的判断,改变条件的使用方式等。

前端性能优化:条件判断优化


优化原则:

除非你要迭代遍历一个属性未知的对象,否则不要使用 for-in 循环。 

改善循环性能的最好办法是减少每次迭代中的运算量,并减少循环迭代次数。

一般来说,switch 总是比 if-else 更快,但并不总是最好的解决方法。 

当判断条件较多时,查表法比 if-else 或者 switch更快。 

   运行的代码总量越大,使用这些策略所带来的性能提升就越明显。


1 0
原创粉丝点击