V8技术分析

from http://lovechrome.com/viewthread.php?tid=116&extra=page%3D1

V8技术分析一(ZZ)

[font=verdana][size=12px][font=Simsun][size=16px][url=http://blog.youkuaiyun.com/zengwh/archive/2008/09/14/2897850.aspx][font=Arial, sans-serif]V8[/font]技术分析一[/url][/size][/font][size=14px]为什么[font=Nimbus Roman No9 L, serif]V8[/font]的速度比其他浏览器的[font=Nimbus Roman No9 L, serif]JS[/font]引擎快?以下将做一个大致的分析。只是个人的分析,可能有不正确之处,欢迎指正。[/size] [size=14px][font=Nimbus Roman No9 L, serif]V8[/font]执行[font=Nimbus Roman No9 L, serif]JavaScript[/font]的流程如下:[/size] [align=center][size=14px] [/size][/align][align=center][size=14px]图[font=Nimbus Roman No9 L, serif]1 V8 [/font]处理[font=Nimbus Roman No9 L, serif]JavaScript[/font]流程[/size][/align][size=14px][font=Nimbus Roman No9 L, serif]V8[/font]执行过程分为两个阶段:编译阶段和执行阶段。[/size] [size=14px]首先[font=Nimbus Roman No9 L, serif]JavaScript[/font]经过[font=Nimbus Roman No9 L, serif]Compiler[/font]将脚本转为抽象语法树[font=Nimbus Roman No9 L, serif](AST)[/font],然后在宏汇编器的作用下,将[font=Nimbus Roman No9 L, serif]AST[/font]的每个节点转化为机器相关的指令[font=Nimbus Roman No9 L, serif]([/font]如[font=Nimbus Roman No9 L, serif]Intel[/font]有[font=Nimbus Roman No9 L, serif]IA32[/font]实现,[font=Nimbus Roman No9 L, serif]ARM[/font]有[font=Nimbus Roman No9 L, serif]arm[/font]实现[font=Nimbus Roman No9 L, serif])[/font],最后交由[font=Nimbus Roman No9 L, serif]CPU[/font]直接执行这些生成的指令。[/size] [size=14px][font=Nimbus Roman No9 L, serif][/font]其他浏览器[font=Nimbus Roman No9 L, serif]JS[/font]引擎[font=Nimbus Roman No9 L, serif](Firefox)[/font]在编译阶段和[font=Nimbus Roman No9 L, serif]V8[/font]类似,但是生成的指令不是机器相关的指令而是自定义的指令,因此导致在执行阶段需要解释执行。这也就是为什么[font=Nimbus Roman No9 L, serif]V8[/font]引擎的性能如此卓越的根本原因。[/size] [size=14px][font=Nimbus Roman No9 L, serif][/font]从根本上,[font=Nimbus Roman No9 L, serif]V8[/font]是包含了一个[font=Nimbus Roman No9 L, serif]JIT[/font]编译器,并且直接有CPU执行生成的体系结构相关的指令,因此才比其他引擎快。[/size] [/size][/font]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值