• 读高性能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比起+(符号)效率慢

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

  • 相关阅读:
    [SDOI2013]直径(树的直径)
    [ZJOI2012]旅游(树的直径)
    [SDOI2011]消防(树的直径)
    【模板】2-SAT 问题(2-SAT)
    [HNOI2006]公路修建问题
    速度限制(分层图)
    [JLOI2011]飞行路线(分层图)
    【洛谷 P3194】 [HNOI2008]水平可见直线 (单调栈)
    【洛谷 P3187】 [HNOI2007]最小矩形覆盖 (二维凸包,旋转卡壳)
    【洛谷 P1452】 Beauty Contest (二维凸包,旋转卡壳)
  • 原文地址:https://www.cnblogs.com/xyptechnology/p/11115379.html
Copyright © 2020-2023  润新知