webkit功能,webkit功能选项详解

首页 > 实用技巧 > 作者:YD1662023-06-18 17:57:21

2.2.3 Blink的运行和退出

2.2.4 Blink的项目代码结构

webkit功能,webkit功能选项详解(5)

2.2.5 platform内部构成

1) WTF:统一编码原语,如WTF::Vector, WTF::HashSet, WTF::HashMap, WTF::String and WTF::AtomicString来代替std:vector 等。

2) 内存管理:a. PartitionAlloc b.Oilpan(Blink GC) c.malloc/free/new/delete

3) 任务调度:为提高渲染引擎的响应,应执行异步。所有任务都应发布到Blink Scheduler任务队列,指定正确类型并设置优先级,以使得能巧妙地安排任务。

4) Page/Frame/Document/ExecutionContext/DOMWindow

分别对应选项卡、iframe、window.document、主线程和工作线程上下文、JavaScript中的窗口对象。

渲染进程中各种数量关系

5) 进程外iframe

站点隔离:为每个站点创建一个渲染器进程(相同一二级域名)。跨站点由两个渲染器托管。

6) 分离的iframe/文件

doc = iframe.contentDocument iframe.remove() //iframe 与 dom 树分离 doc.createElement('div'); //仍可在分离的框架上运行脚本

左滑可查看完整代码,下同

7) Web IDL绑定

8) V8

关系:一个frame = N个窗口对象 = 用于N个world。Context对应该窗口对象

V8的API低级且难以使用,在platform/bindings中提供很多V8 API辅助类。每个C DOM对象,如Node都有其对应的V8包装器。V8包装器对应的C DOM对象具有强引用。C DOM对象只对V8包装器弱引用。

webkit功能,webkit功能选项详解(6)

2.3 V8

V8是Google的开源高性能JavaScript和WebAssembly引擎,用C 编写,它实现ECMAScript和WebAssembly,可独立运行或嵌入到任何C 应用程序中,如Chrome和Node.js。

webkit功能,webkit功能选项详解(7)

相关资料ECMAScript:https://tc39.es/ecma262/ WebAssembly:https://webassembly.github.io/spec/core/
二、Chrome的多进程架构

注意:以下内容根据 Mariko Kosaka 的英文原版《Inside look at modern web browser》(见参考文献),进行翻译、理解、总结提炼、条理化、加入应用示例、进行相关知识补充扩展而来。

1. 背景:计算机的核心是CPU和GPU

CPU:Center Processing Unit,同时支持并行、串行操作,需很强通用性处理不同数据类型、要支持复杂通用逻辑判断,需引入大量分支和中断处理,结构异常复杂。

GPU:Graphics Processing Uint,专为执行图形渲染必须的复杂的数学和几何计算而设计。

webkit功能,webkit功能选项详解(8)

上一页12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.