DevTools Performance工具中的解析,编译和评估是什么?

Eli*_*'er 7 javascript performance google-chrome devtools

当运行在铬合金性能选项卡JS脚本,我看到有三个步骤JS解释:ParseCompileEvaluate。有时候,我只是看Evaluate,有时CompileEvaluate有时它的整机三年。

我的问题是:

  • 每个步骤实际上意味着什么?
  • 为什么有时缺少步骤?(例如,有时Parse会丢失)

Jon*_*lms 5

解析:

js引擎遍历代码,确定所有不同的作用域,变量声明等,并对它们进行排序。在此步骤中,还发生吊装。基本上,您的纯文本源代码会变成抽象语法树(AST)

编译:

Chromes V8使用JIT编译,这意味着js代码的某些部分被转换为字节码(字节码直接在您的处理器上运行,而中间没有任何抽象层)。这样可以提高性能。有时,它可能会决定直接运行代码而不进行编译,例如,如果编译花费的时间比未优化运行的时间长,那么将毫无益处。

评估:

代码运行。

继续阅读:

V8如何优化

字节码与直接运行

全部一起