Archive

Posts Tagged ‘V8’

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

August 11th, 2015 2 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)

 

Baseline Compiler in V8

June 21st, 2013 1 comment

http://wingolog.org/archives/2013/04/18/inside-full-codegen-v8s-baseline-compiler

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

[摘要] The V8 Myth: Why JavaScript is not a Worthy Competitor

December 25th, 2012 No comments

本文是内容摘要。原文见这里。作者的主页在这里

以下是摘要:

  • JavaScript是无类型的(untyped)语言,代码规模相对较小,以源代码形式发布,在运行动态编译;ActionScript是有类型的(typed),代码规模较大,在编译后以二进制字节码的形式发布。
  • JavaScript在语言本质上的一些特性导致了它不适合用来开发重量级的应用。清醒一些吧。
  • 动态分析是静态分析的很好的补充,但是无法完全替代静态分析。ActionScript代码经过一个AOT(Ahead-of-Time)编译器充分的分析和优化,而JavaScript的即时编译器无法承受这种优化的开销。
  • 你大概听说V8(一个新的JavaScript VM)使用了“类型推断”技术,但是你可能不知道一个JIT是无法承受AOT使用的 modular analysis 所带来的开销的。
  • 我粗略的测试了一下ActionScript工具链和JavaScript工具链。前者得到的代码速度是后者的三倍以上。当然这个比较不够严谨。
  • 所以,不要操心JavaScript了,来关注ActionScript吧,这个才是21世纪最值得拥有的脚本语言。

摘要结束

原文作者原先是美国马里兰大学程序语言研究组的研究人员,后来加入了Adobe公司程序语言研究小组。这篇博客写于2012年1月,距今差不多快1年——对于互联网技术而言是很长的一段时间。文章很短,评论很多,语言之间的对比和吐槽总是很有人气 🙂

今天看来,文中提到的JavaScript的一些问题依然存在,相信其中还有一些研究的机会,博主已经看到了一些相关的研究成果发表了。有兴趣研究的同学要抓紧时间了 🙂