Joh*_*yre 2 javascript internet-explorer internet-explorer-8
我注意到在更改了javascript文件,清除缓存并重新加载之后; 一个函数特别是在大约90ms运行,下次我加载页面时,它运行40ms,下次运行它,它运行20ms ......然后永远不会变快.
有点像IE正在编译我的javascript并在某处缓存编译版本,类似于SQLServer处理查询的方式.
那是怎么回事?
有谁知道我在哪里可以找到浏览器如何处理javascript的说明?
你可能想看看Eric Lippert对Peter Torr的博客文章Compiled,explain,how的评论:
JScript Classic就像编译语言一样,在任何JScript Classic程序运行之前,我们完全语法检查代码,生成完整的解析树,并生成字节码.然后我们通过字节码解释器运行字节码.从这个意义上说,JScript就像Java一样被"编译".不同之处在于JScript不允许您持久化或检查我们的专有字节码.此外,字节码比JVM字节码高得多 - JScript Classic字节码语言只不过是解析树的线性化,而JVM字节码显然是为了在低级别的堆栈机器上运行.
帖子和评论是从2003年9月开始的,但是根据Ralph Sommerer 在IE8帖子中的On JavaScript性能判断,它们在底层JScript引擎中没有太大变化:
除非IE(以及其他地方)中使用的JavaScript引擎对本机代码采用某种编译方式,否则在性能方面总是落后于其竞争对手.从我收集的Channel9外观中他们已经改进了字节码执行,但他们的主要目标是JavaScript本机对象(Array,String,...)和JavaScript-DOM交互.
| 归档时间: |
|
| 查看次数: |
4244 次 |
| 最近记录: |