Chrome Internal: 前言

转载请注明原文地址:http://blog.youkuaiyun.com/yunchao_he


Google Chrome是当今最流行的浏览器之一,它实现并推动了最新的HTML5标准和Web开发技术。Chrome背后的开源项目是Chromium,其绘制引擎(render engine)从Webkit中克隆出来,名为Blink。而WebKit是苹果公司主导的网页渲染引擎,用于Safari, WKWebView等众多浏览器或相关组件中。作为开源项目,Chromium和WebKit也是当今IT界最有影响力、最活跃的几个开源项目之一。

本人从事Chromium/Blink/Webkit相关工作多年,因此对Chrome内核有一定了解,特别是对绘制有关的内容有深入研究。本人打算根据自己所学所知,撰写《Chrome内核解析》系列文章,作为自己的学习笔记,也一并分享出来和同行探讨。内容如有谬误,欢迎指正。

首先将从我最熟悉的绘制部分写起。作为浏览器内核的重要组成部分,绘制引擎的内容非常复杂。特别是对于Chromium这样的现代浏览器,在它的多进程构架下,网页的绘制分散在众多进程、线程和模块中,看起来更加纷繁复杂。在深入介绍绘制部分之前,也有必要大致介绍下和绘制相关的背景。所以先由背景篇开始,然后介绍Chrome内核的绘制部分。如有可能,后续将介绍Chrome的2D图形库Skia, Chrome for Android, Chromium WebView, Chrome的JS引擎V8, 以及一些知名的Web开发框架或游戏引擎,比如Three.js, Unity3D-HTML, Cocos2D-HTML, Box2D, JQuery等等。 


Chrome Internal 将分为以下章节:

 

第一部分:背景篇

第一节:Chrome, Chromium, WebKit, WebKit2, Blink

第二节:Chromium的多进程构架

第三节:Chromium启动与资源加载

第四节:HTML, CSS, JavaScript的解析与执行

第五

<--- JS stacktrace ---> FATAL ERROR: MarkCompactCollector: young object promotion failed Allocation failed - JavaScript heap out of memory 1: 00007FF6059A61BF napi_wrap+133519 2: 00007FF60593F6D6 DSA_meth_get_flags+63062 3: 00007FF60594056D node::OnFatalError+301 4: 00007FF60622599E v8::Isolate::ReportExternalAllocationLimitReached+94 5: 00007FF60620A78D v8::SharedArrayBuffer::Externalize+781 6: 00007FF6060B3F8C v8::internal::Heap::EphemeronKeyWriteBarrierFromCode+1516 7: 00007FF60609EA0B v8::internal::NativeContextInferrer::Infer+59739 8: 00007FF606083CDF v8::internal::MarkingWorklists::SwitchToContextSlow+56975 9: 00007FF6060979CB v8::internal::NativeContextInferrer::Infer+31003 10: 00007FF60608EAAD v8::internal::MarkCompactCollector::EnsureSweepingCompleted+6285 11: 00007FF606096C1E v8::internal::NativeContextInferrer::Infer+27502 12: 00007FF60609AC6B v8::internal::NativeContextInferrer::Infer+43963 13: 00007FF6060A4662 v8::internal::ItemParallelJob::Task::RunInternal+18 14: 00007FF6060A45F1 v8::internal::ItemParallelJob::Run+641 15: 00007FF606077C53 v8::internal::MarkingWorklists::SwitchToContextSlow+7683 16: 00007FF60608EF5C v8::internal::MarkCompactCollector::EnsureSweepingCompleted+7484 17: 00007FF60608D794 v8::internal::MarkCompactCollector::EnsureSweepingCompleted+1396 18: 00007FF60608B308 v8::internal::MarkingWorklists::SwitchToContextSlow+87224 19: 00007FF6060B9D71 v8::internal::Heap::LeftTrimFixedArray+929 20: 00007FF6060BBE65 v8::internal::Heap::PageFlagsAreConsistent+789 21: 00007FF6060B1081 v8::internal::Heap::CollectGarbage+2049 22: 00007FF6060AF285 v8::internal::Heap::AllocateExternalBackingStore+1349 23: 00007FF6060C9115 v8::internal::GCIdleTimeHandler::ShouldDoContextDisposalMarkCompact+1029 24: 00007FF6060C9565 v8::internal::Factory::AllocateRaw+37 25: 00007FF6060DEC5E v8::internal::FactoryBase<v8::internal::Factory>::NewStruct+94 26: 00007FF6060D7A55 v8::internal::Factory::NewStackTraceFrame+53 27: 00007FF6061010B2 v8::internal::Isola没
03-23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值