• 读高性能javaScript


    1.HTML中脚本会阻塞页面其他资源的下载,因此所有的<script>标签尽可能放到<body>标签的底部。

    2.全局变量先存储到一个局部变量中,以局部变量代替全局变量以减少对性能影响。

    3.变量作用域中位置越深访问时间越长,局部变量存在于作用域链的起始位置访问速度最快,全局变量处于作用域链的最末端,访问速度最慢。

    4.嵌套对象会明显影响性能。

    5.循环性能优化

    (1)减少或者简化每次迭代处理的事务、或者减少迭代的次数

    for(var i = 0, len = item.length; i < len ; i++)
    {
        process(item[i]);
    }
    //修改为
    var j = 0, count = item.length;
    while(j < count)
    {
        process(item[j++])
    }
    //重写后循环运行前对长度进行一次属性查找,控制条件直接读取局部变量读取速度更快,大多浏览器可以节省25%运行时间。
    
    //再次优化
    var j = item.length;
    while(j--)
    {
        process(item[j])
    }
    //控制条件只是简单的和0比较直到为0(等同于false)控制条件从两次减少到一次进一步提高了循环速度(运行提升50%左右)

    6.判断条件数量较多,使用switch代替if-esle

    //if判断优化
    if
    (value == 0) { return result0; } else if(value == 1) { return result1; } ......................... else if(value == 10) { return result10; } //这个表达式最多要判断10次,如果value再0~10之间均匀分布会增加运行时间,代码重写为: if(value < 6) { if(value < 3) { ...... } else { ..... } } else { ..... } //使用了二分法把值域分成系列区间,重写后每次最多经过4次判断即可找出

     7.字符拼接concat比起+(符号)效率慢

                                                                    --减少工作量就是最好的性能优化

  • 相关阅读:
    【t090】吉祥数
    【u221】分数
    【u212】&&【t036】最大和
    【u125】最大子树和
    【u124】环状最大两段子段和
    【u123】最大子段和
    【u122】迎接仪式
    【u121】教主的花园
    【u118】日志分析
    【u117】队列安排
  • 原文地址:https://www.cnblogs.com/xyptechnology/p/11115379.html
Copyright © 2020-2023  润新知