[WebKit分析②]WebKit组件及其简介

WebKit 简单来说主要由两部分来组成: WebCore, JavaScriptCore 。


WebCore :主要完成 DOM 和 DOM HTML , CSS ,并负责页面的布局,渲染。在现在的版本中还支持 SVG 等,同时也完成一些其他功能,例如历史,页面载入还有其他一些与平台相关的功能,但是主要集中在 DOM , DOM HTML 和渲染这里就大体了解以下功能,在后面的章节中会进行详细的介绍。

JavaScriptCore :是一个 JavaScript 引擎,由 KDE 的 JavaScript 引擎 KJS 衍生而来,支持很多新的功能,并且有很好的性能,在 2008 年时, WebKit 重新编写了 JavaScriptCore 并命名为 SquirrelFish ,与之前的解释器使用遍历语法树的实现方式不同的是, SquirrelFish 的实现采用字节码。当然Chrome所使用的V8引擎也具有很好的性能,具体了解Follow下面的链接http://code.google.com/p/v8/Script的引擎不是本文的研究重点,有兴趣的可以自行进行研究。

-遍历语法树实现方式存在的高代价问题,在 SquirrelFish 字节码引擎中基本都不存在。首先,一个字节码流能够精确描述执行程序所需的操作,编译成字节码实际上隐性地跳过了不相关的语法结构。其次,字节码调度程序只是一个简单地从内存中直接读取,转而间接调度分支程序的过程。因此,执行字节码指令要比访问语法树节点快得多。第三,由于不再需要语法树,解释器无需继续在语法树节点间传送执行状态。

在解析器使用字节码之后,目前实现的编译时优化 有:

    * 常量折叠( constant folding )

    * 更强的拷贝传播

    * 类型推断——包括精确和推测两种方式

    * 基于表达式上下文的特化——尤其是 void 和 boolean 上下文

    * 窥孔优化( peephole optimization )

    * 逃逸分析 ( escape analysis ) ]

可以参考: http://webkit.org/blog/189/announcing-squirrelfish/

 

 

WebKit是一款开源的网页浏览引擎, 使用 HTML、CSS、 Javascript和DOM等标准技术来实现加载并显示窗口中的网页内容, 并拥有清晰的源码结构、 极快的渲染速度。WebKit目前支持 HTML4/5、 CSS1/2、 DOM1/2、HTTP/FILE, GIF/JPEG/PNG,XML,SVG,RSS2.0等。其主要由布局渲染 (Webcore)和Javascript引擎( Javascriptcore) 等组成, 还包括Platform与平台相关的一些功能, 如图形图像, 字体, Unicode , I/O,输入法等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值