由于底层逻辑实现不同操作系统区别很大,所以干脆分篇来说。 主要讲一下Time、TimeTicks两个类里面对于时间戳的实现,其余的运算符重载、边缘工具方法就不看了,先是Time。 Time 类本身的说明在上一篇有,这里就去掉了。 从注释可知,这里的Now ...
上一篇的源码看得十分无趣,官方文档跟黑心棉一样渣。 这一篇讲讲windows操作系统上的时间戳实现,由于类的声明,方法解释上一篇都贴过了,所以这次直接上对应版本的代码。 windows与mac很不一样,实现了一个新的Clock类来管理时间,如下。 从注释和方法名可以看出,windows完全用这个新类代替了老的Time TimeTicks,因为这个方法拥有更好的性能,这个类同时会周期性的与系统时间 ...
2019-05-28 01:28 0 560 推荐指数:
由于底层逻辑实现不同操作系统区别很大,所以干脆分篇来说。 主要讲一下Time、TimeTicks两个类里面对于时间戳的实现,其余的运算符重载、边缘工具方法就不看了,先是Time。 Time 类本身的说明在上一篇有,这里就去掉了。 从注释可知,这里的Now ...
没办法了,开坑吧,接下来的几篇会讲述JavaScript字符串源码在v8中转换成AST(抽象语法树)的过程。 JS代码在V8的解析只有简单的几步,其中第一步就是将源字符串转换为抽象语法树,非常类似于vue中将html转换为VNODE的过程。该过程涉及的类并不多,均位于/src ...
先声明一下,这种长系列的大块头博客只能保证尽可能的深入到每一行源码,有些代码我不乐意深究就写个注释说明一下作用。另外,由于本地整理的比较好,博客就随心写了。 整个Compile过程目前只看到asmjs之前,简单的过了几遍,大部分方法没有点进去看,实在是太复杂了。上一篇的结尾指出了AST ...
目录(?)[-] 高速引擎的需求 语言本身的问题 JIT编译 JIT Compile 垃圾回收管理 内嵌缓存inline cache 隐藏类 内嵌缓存Inline Cache 机器语言的特性 附录熟悉OOP的程序员之参考 ...
上一篇其实想讲初始化的第二步,但是内容比较无聊,所以换了一个话题,谈了谈v8的命名空间和宏,稍微轻松一下。 在这里还是接着说说初始化过程,毕竟写博客的初衷是对自己努力的记录,不是为了吸粉,这篇没图,对代码本身没有兴趣的可以跳过了。 再多说几句,讲一下我怎么看的源码吧。源码的一些方法涉及 ...
记录一下步骤,方便以后换了电脑重新编译。 1、搞定depot_tools,git地址:git clone https://chromium.googlesource.com/chromium/too ...
引言 我们都知道谷歌浏览器chrome采用的javascript引擎是v8,node.js这样的runtime能够火遍全球,很大一部分功劳得归于v8。半年前就想自己编译v8引擎玩玩,无奈***阻挠了大部分下载,实在是体验太差,于是放弃。今天重新编译v8,先把代码从墙外的vps下载下来,再用tar ...
,以及如何将V8引擎作为一个独立的虚拟机来使用。本文将进一步讨论这些概念,并介绍其他有关V8引擎嵌入C++ ...