GC( Garbage Collection ),GC执行时,中断代码,停止其他操作。执行阶段遍历所有对象,对于不可访问的对象进行回收。该机制执行操作耗时100ms左右。V8引擎中使用两种优化方法:
1. 分代回收;
2. 增量GC;
1. 目的是通过对象的使用频率、存在时长区分新生代与老生代对象。多回收新生代区(young generation),少回收老生代区(tenured generation),减少每次需遍历的对象,从而减少每次GC的耗时。
2. 把需要长耗时的遍历、回收操作拆分运行,减少中断时间,但是会增大上下文切换开销.
解释型语言(例如 JavaScript)来说, 通过词法分析 -> 语法分析 -> 语法树,就可以开始解释执行了。
语法分析成 AST (Abstract Syntax Tree)