zoukankan      html  css  js  c++  java
  • web性能优化--算法优化(四)

    • 避免for-in
    • 把数组长度保存在局部变量中
    • 较少迭代次数(Duffs Device)
    • 基于函数的循环比基于循环的迭代消耗性能更多
    • 优化if-else,一般switch比if-else速度快(hash tabel)

      1)避免用for-in

        常见的循环有:for、do-while、while、for-in。for-in循环比较慢,因为每次迭代操作时会同事搜索实例或原型属性。

      2)把数据数组长度保存在局部变量中 

    for(var i = 0, len = items.length;i < len; i++){
     process(items[i]);
    }

      3)减少迭代次数(Duffs Device)http://blog.csdn.net/cengjingcanghai123/article/details/21231865

    <script type="text/javascript">  
      var iterations = Math.floor(items.length/8),  
          startAt = items.length % 8,  
          i = 0;  
          do {  
            switch(startAt) {  
              case 0: process(items[i++]);  
              case 7: process(items[i++]);  
              case 6: process(items[i++]);  
              case 5: process(items[i++]);  
              case 4: process(items[i++]);  
              case 3: process(items[i++]);  
              case 2: process(items[i++]);  
              case 1: process(items[i++]);  
            }  
            startAt = 0;  
          }while(--iterations);  
    </script>  

      4)基于函数的循环比基于循环的迭代消耗性能更多。例如:for循环迭代比forEach函数迭代性能高

      5)优化if-else,一般switch比if-else速度快,但是在判断条件多时,使用查找表比if-else和switch都快

  • 相关阅读:
    浅谈Linux进程
    POJ 1426 Find The Multiple
    JS JavaScript闭包和作用域
    JS JavaScript深拷贝、浅拷贝
    JS JavaScript中的文档碎片 DocumentFragement JS性能优化
    前端DOM知识点
    JS JavaScript中的this
    JS JavaScript实现杨辉三角
    JS JavaScript事件循环机制
    ES6基本语法
  • 原文地址:https://www.cnblogs.com/thonrt/p/6589749.html
Copyright © 2011-2022 走看看