上一页 1 2 3 4 5 6 ··· 16 下一页
摘要: v8的初始化三部曲,前面花了三篇解决了第一步,由于只是生成了一个对象,第二步就是将其嵌入v8中,先看一下三个步骤。 第一步可以由用户自己手动实现platform,只要按照规范来继承对应基类,一般也不会有人搞吧。 这里的嵌入,如果用代码来进行解释,实际上是叫做"命名空间"。v8引擎的体量非常巨大,所以 阅读全文
posted @ 2019-06-05 17:46 书生小龙 阅读(945) 评论(3) 推荐(0) 编辑
摘要: 先说结论,V8引擎在默认Platform中初始化的这个线程是用于处理类似于setTimeout的延时任务。 另外附一些图,包括继承树、关键属性归属、纯逻辑工作流程,对代码木得兴趣的看完图可以X掉了。 上一篇讲了V8初始化默认Platform对象时会做三件事,其中生成空白DefaultPlatform 阅读全文
posted @ 2019-06-04 20:16 书生小龙 阅读(754) 评论(0) 推荐(1) 编辑
摘要: 又到了常规的堆砌代码凑文章字数环节,很多API我就直接贴官方的英文释义,个人翻译其实有时候并不是很准确,搞错了甚至会误导,还是尽量自己去理解。 首先看看入口方法。 这里比较头疼的是我没找到NewDefaultPlatform方法是在哪里定义的,所以默认参数不知道是什么,只能打断点调试看变量值,已经在 阅读全文
posted @ 2019-06-03 17:25 书生小龙 阅读(784) 评论(0) 推荐(0) 编辑
摘要: 本来寻思着写一篇"'Hello' + ', World'"是怎么从JS代码编译然后输出的,然而compile过程的复杂性远超我的想象,强上怕会走火入魔,还是老老实实先回家种田,找点咸鱼方法先写着。虽然说是咸鱼方法,但是V8任何一块拿出来都不简单,之前讲的Time模块说实话大概是属于源码里面幼儿园级别 阅读全文
posted @ 2019-06-02 21:34 书生小龙 阅读(1565) 评论(0) 推荐(0) 编辑
摘要: 这一篇讲windows系统下TimeTicks的实现。 对于tick,V8写了相当长的一段discussion来讨论windows系统上计数的三种实现方法以及各自的优劣,注释在time.cc的572行,这里直接简单翻译一下,不贴出来了。 CPU cycle counter.(Retrieved vi 阅读全文
posted @ 2019-05-29 02:38 书生小龙 阅读(730) 评论(0) 推荐(1) 编辑
摘要: 上一篇的源码看得十分无趣,官方文档跟黑心棉一样渣。 这一篇讲讲windows操作系统上的时间戳实现,由于类的声明,方法解释上一篇都贴过了,所以这次直接上对应版本的代码。 windows与mac很不一样,实现了一个新的Clock类来管理时间,如下。 从注释和方法名可以看出,windows完全用这个新类 阅读全文
posted @ 2019-05-28 01:28 书生小龙 阅读(902) 评论(0) 推荐(2) 编辑
摘要: 由于底层逻辑实现不同操作系统区别很大,所以干脆分篇来说。 主要讲一下Time、TimeTicks两个类里面对于时间戳的实现,其余的运算符重载、边缘工具方法就不看了,先是Time。 Time 类本身的说明在上一篇有,这里就去掉了。 从注释可知,这里的Now是返回国际时间戳的通用方法,但是操作系统可能会 阅读全文
posted @ 2019-05-24 16:23 书生小龙 阅读(825) 评论(1) 推荐(0) 编辑
摘要: 积跬步,行千里,先从最简单的开始写。 这一篇介绍V8中的时间模块,与libuv粗糙的update_loop_time方法不同,V8有一套独立完整的类负责管理时间。 该类位于src/base/platform/time.h,是一个辅助模块,首先来看一下继承树。 整个模块的继承关系比较简单,一般常用的就 阅读全文
posted @ 2019-05-24 02:14 书生小龙 阅读(893) 评论(1) 推荐(1) 编辑
摘要: 这一篇不打算讲技术,聊点别的吧,写这个的原因主要是看到了我博客园的签名,开始这个最终源码系列前想说点什么。 转行前端(达成) 入行1年vue源码(达成)、webpack源码(半达成) 入行2年争取读通node源码 (学习中) 入行3年进大厂(提前达成)或者入门V8引擎 目前转前端第二年,抓紧时间啦 阅读全文
posted @ 2019-05-22 13:33 书生小龙 阅读(746) 评论(0) 推荐(0) 编辑
摘要: 记录一下步骤,方便以后换了电脑重新编译。 1、搞定depot_tools,git地址:git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git,弄完后设置为环境变量(export PATH=$PATH:/pa 阅读全文
posted @ 2019-05-19 17:15 书生小龙 阅读(1476) 评论(2) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 16 下一页