谷歌 V8 JavaScript 引擎引入新解释器 Ignition
谷歌发布了新的JavaScript解释器Ignition,Chrome 53将在一些内存有限的Android设备上使用它。
谷歌资深软件工程师Ross McIlroy在一篇博文中探讨了构建Ignition的原因。
V8目前没有解释器。初始执行的JavaScript代码最先被解析,并编译成一个未优化的状态。解析器和编译器的协同工作机制会导致部分代码后续 解析两次、甚至是三次。总之,按照谷歌的说法,V8将33%的页面启动时间用在了解析和编译代码上。这也导致了大量的内存开销。
通过使用解释器,谷歌希望减少当前系统的内存使用。Ignition还是依赖于一个解析器,但JavaScript被编译成字节码,而不是原生代 码。McIlroy表示,“我们[使用Ignition]将代码编译成简洁的字节码,而不是编译成机器码,大大减少了结果代码。因此,我们可以减少系统的 内存使用,对于不常运行的函数而言尤其如此。”
由于字节码较小,所以可以编译全部源代码,而不用避免编译未使用的代码。也就是说,脚本只需要解析一次,而不是像当前的编译过程那样解析多次。
McIlroy还提供了一些技术细节:
Ignition解释器使用低级的、体系结构无关的TurboFan宏汇编指令为每个操作码生成字节码处理程序。TurboFan将这些指令编 译成目标平台的代码,并在这个过程中执行低级的指令选择和机器寄存器分配。Ignition是一个寄存器机,每个字节码都将其输入和输出指定为显式寄存器 寻址;它不是一个栈式机,每个字节码消费输入,并把输出推送到一个隐式栈上。
其他浏览器供应商已经将使用解释器作为第一个步骤。Mozilla的SpiderMonkey和微软的Chakra JavaScript引擎都是一开始就有解释器,而且它们都是连接到了一个两层的编译系统。
从Chrome 53(预计在9月初发布稳定版本)开始,内存为512MB或不足512MB的Android设备将开始使用Ignition。要想深入了解Ignition,请查看谷歌发布的设计文档。
文章转载自 开源中国社区[http://www.oschina.net]
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
这些编程语言程序员工资最高!Java 才第四
在众多行业中,程序员属于高薪职业。无论是在国外还是国内,程序员的薪金水平普遍高于其他行业的工作岗位。 高薪的诱惑和充满挑战性的工作,令程序员一直成为备受欢迎的职业。在今年年初,Glassdoor发布的一份调查报告指出,在美国,程序员的就业情况仍然向好。据报告显示,在排名前25位的最能赚钱和需求量最高的工作岗位中,超过一半以上的岗位要求求职人员具备编程技术。因此,要想获得高薪不是一件容易的事情,你得有过硬的本领。 14种最具“吸金”能力的编程语言 据美国Rasmussen College(拉斯姆森学院)在2015年5月发表的一篇文章显示,在数以百计的编程语言中,以下14种编程语言最具“吸金”能力。 文章指出,这个结果是拉斯姆森学院收集了在2014年发布的1800万个招聘广告,以“平均年薪”和“招聘职位”两个指标为基础进行分析而得出来的。 而在Indeed.com今年发布的调查数据则显示,根据编程工作的数量,排在前九位的编程语言如下: 学习哪种编程语言可以赚到更多钱? 不同的编程语言适合不同的系统,不同的工程师也需要掌握不同的编程语言。 后台或服务器端的程序员通常都懂得Python, Ru...
- 下一篇
六个细节改变提升 Android L 用户体验
导语:美国科技博客Android Authority近期刊文称,谷歌在I/O开发者大会上发布了新版Android L系统,并公布了这一系统的新特性,包括对通知的重新设计、菜单的调整,以及Android for Work等。但实际上,在试用开发者预览版之后,可以发现这一系统的一些细节调整同样带来了很大改进,能明显提升用户的使用体验。 以下是6点此类改进: 1.Android L可以预估电池充电时间 在手机连接电源之后,Android系统将在后台计算手机充满电需要花费多长时间。你将可以在锁屏屏幕上看到这一信息。此外,用户还可以打开设置->电池菜单,查看这一信息。另一方面,当手机没有连接电源时,在这一菜单中用户将可以看到电池将在多长时间内耗尽。 2.请勿打扰模式 对使用第三方ROM的许多用户,这或许并不是一个新鲜功能,但此次Android直接集成了这一功能。简单地说,Android目前提供了一个 “请勿打扰”模式。用户可以通过点击音量键,或通过通知界面来激活这一模式。如果启用这一模式,那么所有通知将在一段时间内被静音,除非用户关闭这一模 式。 此外,谷歌还提供了更丰富的控制功能。用户可...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS6,CentOS7官方镜像安装Oracle11G
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作