C++的RAII在WebKit中的应用

先看下面这段WebKit中的代码: { NestingLevelIncrementer nestingLevelIncrementer(m_scriptNestingLevel); //Do something else... } 看看NestingLevelIncrementer的实现,就知道与另一种写法看似是等价的: { ++m_scriptNesting...
阅读(1707) 评论(0)

新人入职引导的思考

周末参加了入职引导人的培训,现在结合我的经验总结一下个人感受最深的五方面内容。 0. 明确入职引导人的目的和目标 作为入职引导人,虽然不是一个岗位,也一定要清楚自己的角色和责任(Role & Responsibility)。理解责任,除了细节的条条之外,最为重要是清楚目的和目标。目的和目标要分开谈,目的(purpose)是深层次的要素或者驱动力,目标(target)是则一个清晰明确的定...
阅读(5099) 评论(5)

[WebKit] JavaScriptCore解析--基础篇(三)从脚本代码到JIT编译的代码实现

前面说了一些解析、生成ByteCode直至JIT的基本概念,下面是对照JavaScriptCore源代码来大致了解它的实现。 从JS Script到Byte Code 首先说明Lexer, Parser和ByteCode的生成都是由ProgramExecutable初始化过程完成的。先在JSC的API evaluate()中会创建ProgramExecutable并指定脚本代码。然后传...
阅读(11468) 评论(1)

[WebKit]浏览器的加载与页面性能优化

非常棒、非常系统的一份资料,值得阅读! 原文来自百度泛用户体验。  作者:nwind 本文将探讨浏览器渲染的loading过程,主要有2个目的: 了解浏览器在loading过程中的实现细节,具体都做了什么研究如何根据浏览器的实现原理进行优化,提升页面响应速度 由于loading和parsing是相互交织、错综复杂的,这里面有大量的知识点,为了避免过于发散本文将不会对每个细节都...
阅读(4563) 评论(1)

[WebKit] JavaScriptCore解析--基础篇(二)解释器基础与JSC核心组件

这一篇主要说明解释器的基本工作过程和JSC的核心组件的实现。 作为一个语言,就像人在的平时交流时一样,当接收到信息后,包含两个过程:先理解再行动。理解的过程就是语言解析的过程,行动就是根据解析的结果执行对应的行为。在计算机领域,理解就是编译或解释,这个已经被研究的很透彻了,并且有了工具来辅助。而执行则千变万化,也是性能优化的重心。下面就来看看JSC是如何来理解、执行JavaScript脚...
阅读(5523) 评论(2)

[WebKit] JavaScriptCore解析--基础篇 (一)JSC与WebCore

先看一下官方的基本介绍,短短几句就塞满了关键字。 SquirrelFish,正式名称是JavaScriptCore,包括register-based(基于寄存器的虚拟机), direct-threaded, high-level bytecode engine(字节码引擎).它使用基于内置copy propagation(复制性传播算法)的一次性编译器(one-pass compiler),...
阅读(11291) 评论(2)

JavaScript核心指南 (ECMA-262-3)

本文非常详细的说明了JavaScript的核心概念,也是理解JavaScript解释器的重要基础。中文版本可以看这里,但不一定是最新的内容。所以下面放了英文版本供学习使用。 原文地址点这里。 This note is an overview and summary of the “ECMA-262-3 in detail” series. Every section conta...
阅读(4051) 评论(0)

[WebKit]遭遇Mac OS私有API

WebKit并不是完全开源的, Apple封装了一部代码在一个静态库(libWebKitSystemInterfaceXXXX.a)中,并没有提供源代码。而且不同版本的OS (包括iOS),会有特定的版本。 这就是我今天从分析中了解到的, 觉得过程比较有趣,记录一下。 1. 在WebKit中有这样一段源代码 (Laguage.mm): static String httpSt...
阅读(2942) 评论(3)

[WebKit]WebCore之页面加载的设计与实现(一)

这里主要分析WebContentProcess中加载页面的过程,主要针对HTTP请求的处理。 主要结构 WebKit2从接受到loadURL开始,就会准备尝试加载网络数据。不同平台用于处理HTTP请求的网络模块不同,可以简单得描述为下面这个块图:    *Mac OS平台上现在默认使用的是NSURLConnection.    *NSURLConnection的使用方式可以参考这里...
阅读(3963) 评论(1)

Mark-and-Sweep Garbage Collection

This section presents the mark-and-sweep   garbage collection algorithm. The mark-and-sweep algorithm was the first garbage collection algorithm to be developed that is able to reclaim cyclic data s...
阅读(1684) 评论(0)

Software Inspections

When an old idea is a good idea that improves to become a better idea, we should all want to benefit from that evolution. Software Inspection was a good idea when started in 1972. Inspections have c...
阅读(1450) 评论(0)
    个人资料
    • 访问:1524016次
    • 积分:16767
    • 等级:
    • 排名:第617名
    • 原创:221篇
    • 转载:30篇
    • 译文:47篇
    • 评论:362条
    微博/MSN/EMail

    新浪微博:Horky
    QQ:324014340
    Mail:horky.chen@gmail.com
    微信公众号 (聚焦软件开发):
    博客专栏
    最新评论