• 各浏览器对js循环的执行能力测试


    代码如下:

     1 <div id="msg1">msg</div>
     2 <div id="msg2">msg</div>
     3 <script>
     4 function $(d){
     5        return document.getElementById(d);
     6 }
     7 var TimeWast = function () {
     8        var timeStart;
     9        this.Start = function () {
    10               timeStart = new Date();
    11        }
    12        this.wast = function () {
    13               var retVal = new Date().getTime() - timeStart.getTime();
    14               timeStart = new Date();
    15               //console.log("---------------- " + retVal + " ms ----------------\n");
    16               return retVal
    17        }
    18 }
    19  
    20 var arr = new Array(100000000);
    21  
    22 var timeWast = new TimeWast();
    23 timeWast.Start();
    24 var len = arr.length;
    25 for (var i = 0; i < len ; i++) {
    26        var a2 = 1;
    27 }
    28 $('msg1').innerHTML =  timeWast.wast() + "  ms len = arr.length<br/>" ;
    29  
    30 var timeWast = new TimeWast();
    31 timeWast.Start();
    32 for (var i = 0; i < arr.length ; i++) {
    33        var a2 = 1;
    34 }
    35 $('msg2').innerHTML =  timeWast.wast() + "  ms i < arr.length\n" ;
    36  
    37 </script>

    结果如下:

    本人PC:i5-2320 3.00GHz,2G内存。

    可以看出:总体来说,firefox是最牛的,其次是谷歌,Safari与IE差不多了,移动设备上的Safari表现更差(1200+和4000+ms),当然这受到硬件的影响。

    都是循环1亿次,但是两个循环的判断条件稍有区别,下面一个是直接度数组的length属性,而第一个结果是先把length赋给一个变量。经过多次测试,奇怪的是几乎所有浏览器都是后面一个速度更慢,但firefox上面一个速度还慢一点点,当循环次数更大区别就更大,当为10亿次时,区别达到100ms快,还有一个现象的是,opera对两者处理的区别达到4倍几乎。

    如下图:

    我猜想这可能是每个浏览器对数组的length属性处理不一样造成的。

  • 相关阅读:
    ubuntu13.04 安装java
    PHP shell模式下执行PHP文件报错
    python urllib2 cookie 设置
    新浪微博模拟登录(Python+RSA加密算法)附源代码(转)
    Python 实现腾讯微博模拟登录 (附源码)
    python中的字符串与16进制的转换
    mysql in和exists性能比较和使用
    linux分析dump vmcore文件
    SecureCRT密钥key远连接程ssh证书登录Linux
    /tmp清理机制
  • 原文地址:https://www.cnblogs.com/whatmiss/p/2628073.html
Copyright © 2020-2023  润新知