Archive for the ‘V8’ Category

V8 也要开始加解释器了, 嘿嘿

August 11th, 2015 2 comments

Issue 4280: Ignition interpreter tracking bug

Ignition: V8 Interpreter


The machine code generated by V8’s full-codegen compiler is verbose, and as such, can contribute significantly to the amount of memory used by V8’s heap for typical web-pages (a previous analysis showed that the code-space contributed to around 15-20% of the JS heap). The aim of the ignition project is to build an interpreter for V8 which executes a low-level bytecode, thus enabling run-once or non-hot code to be stored more compactly in bytecode form. An added advantage of the bytecode is that it could be fed into a Turbofan graph generator directly, thereby avoiding the need to reparse the JavaScript source code when optimizing a function

V8 也要开始加解释器了, 架构上跟 SpiderMonkey 基本上没啥差别了. 嘿嘿.

Spartan/Microsoft Edge 的 Chakra 也加入了 Simple JIT, 于是现在四大JS引擎的架构都统一了:

解释器 -> Baseline JIT / Simple JIT -> Opt JIT / Full JIT (Optional Off Threading)


Baseline Compiler in V8

June 21st, 2013 1 comment

这个链接介绍了 Google V8 的 baseline JIT 引擎结构, 并对比了 Webkit/JSC 和 Firefox/SpiderMonkey 中对应的实现.