Mat*_*ert 1 javascript performance parsing v8
为了提高性能 JavaScript 引擎有时只在实际调用函数时才完全解析它们。
例如,来自Spidermonkey源代码:
检查函数的语法比执行完整解析/发出快几倍,当页面包含大量永远不会执行的代码(这种情况经常发生)时,延迟解析可以显着提高性能和内存使用率。
解析器可以跳过哪些步骤,同时仍然能够验证语法?
似乎在 Spidermonkey 中,一些节省来自不发出字节码,例如在完整解析之后。例如 V8 中的完整解析是否还包括生成机器代码?
首先澄清一下:这两个步骤称为“预解析”和“完整解析”。“懒惰解析”描述的是先做前者,然后在需要时再做后者的策略。
预解析更快的两大原因是:
解析器还有一些其他内部步骤为代码生成做准备,这些步骤仅在检查错误时是不需要的,但以上两个是重点。
(完整)解析和代码生成是单独的步骤。
| 归档时间: | 
 | 
| 查看次数: | 447 次 | 
| 最近记录: |