Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

浏览器对代码解析的优化差异

  在前一篇文章中我们得到这么一个结论:解析代码是个非常奢侈的过程。但是,这个过程到底是分成什么步骤,又是如何实现的呢?这就已经超出了规范定义的范畴,浏览器爱怎么实现就怎么实现,所以各大浏览器在解析代码时的优化是存在差异的。
  这个测试还是类似前一篇文章中的测试,但是我们把它分为了多个部分。并且这回没有直接执行代码,而是先定义一个超大的函数,然后再来慢慢凌迟这个函数。 var t,f,c=new Array(1E5);
c="(function(e){"+c.join("e+=Math.random();")+"return e;})";
  
t=new Date;
f=eval(c);
console.log("解析代码耗时:"+(new Date-t));

t=new Date;
f(0);
console.log("首次调用耗时:"+(new Date-t));

t=new Date;
f(0);
console.log("再次调用耗时:"+(new Date-t));

t=new Date;
f(0);
console.log("三次调用耗时:"+(new Date-t));

t=new Date;
f(0);
console.log("四次调用耗时:"+(new Date-t));

  IE基本没有优化,所有麻烦的事情都是在代码解析时处理掉的。而Firefox就稍微做了点手脚,偷偷的把某些东西放在函数首次执行时处理。Chrome就优化的很严重了,可以说是多次优化了。这三个浏览器的开发逻辑正是我们现实的缩影。

  本次测试的浏览器版本号
    IE:10.0.9200.16660
    Chrome:29.0.1547.62 m
    Firefox:23.0.1
网名:
3.80.32.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^