Wei Wu / @lazyparser

PLCT Lab. OSDT/HelloGCC/HelloLLVM. RISC-V Ambassador.

Download as .zip Download as .tar.gz View on GitHub

Issue 4280: Ignition interpreter tracking bug

Ignition: V8 Interpreter

Background

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)