zoukankan      html  css  js  c++  java
  • 判定浏览器是支持JIT

    这来源于一个非常现实的性能测试需求。要知道IE(除了刚诞生的IE9),其他出名的浏览器都支持JIT技术来提高代码的执行能力,那么我们进行性能测试时,通常会对某个函数的几个实现循环执行10000次来评估其优劣。但10000次有时对IE来说太多了,几乎不可能的计算量就把它down掉了,对于一些旧点的标准浏览器也是如此,因此这个循环次数不能死定为一个数量级。这个量化标准我就规定为浏览器是否支持JIT,是就让它循环数多一点,不是就少一点。不过怎么判定它是否支持呢?虽然过度优化,可能会带来一些神奇的bug,但它们也很快会被浏览器修正掉。唯一的办法就是到它们的官网查看它们是在哪个版本加入这支持了。

      (function(){
        //by 司徒正美 http://www.cnblogs.com/rubylouvre/
        this.dom = {};
        var ver =parseFloat(((/(?:rv\:|ari\/|sto\/)(\d+\.\d+(\.\d+)?)/.
          exec(navigator.userAgent) || [,0])[1]).toString().replace(/[^\d\.]/g, "").
          replace(/^(\d+\.\d+)(\.(\d+))?$/,"$1$3"));
        dom.jit = document.documentMode === 9 ||// IE 9+
        this.crypto && ver > 1.9 ||// firefox 3.5+(1.91)
        this.opera && this.opera.version()*1 >= 10.5 ||// opera10.50+
        navigator.vendor && ver >= 528 || !1 // safari 4+, chrome 2+
    
      })();
    

  • 相关阅读:
    javascript数据结构
    uni-app — 一套前端开发跨平台应用的终极解决方案
    从函数式编程到Ramda函数库(二)
    从函数式编程到Ramda函数库(一)
    node.js爬取数据并定时发送HTML邮件
    vue cli3.0 结合echarts3.0和地图的使用方法
    vue加载优化策略
    C#时间格式化
    wpf 调用线程无法访问此对象,因为另一个线程拥有该对象。
    使用oracle数据库开发,异常总结
  • 原文地址:https://www.cnblogs.com/rubylouvre/p/1831292.html
Copyright © 2011-2022 走看看