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

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

August 11th, 2015 Leave a comment Go to comments

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)

 

  1. October 23rd, 2015 at 09:10 | #1

    如果 interpreter 可以 fit 进 L0 cache, 速度会爆过 simple JIT.

  2. hellocompiler.com
    October 25th, 2015 at 12:11 | #2

    @Xi Yang
    如果能fit进去估计会快不少 🙂
    解释器一般构造成超多分支调转的大table, CPU的predictor不一定能全部cover.

  1. No trackbacks yet.