前端实用主义让前端飞我爱编程

深入Node

2018-03-29  本文已影响20人  Mr_Treasure

本篇是深入的Node的读书笔记,相关知识点的归纳以及自己的简介《深入Node》

Node架构一览

Node架构

libuv架构

libuv架构

V8架构

V8架构

现代JS引擎执行: 源代码(.js)→抽象语法树(AST)→字节码→JIT→本地代码

V8直接将AST通过JIT编译为本地代码,并且在生成本地代码以后采集相关信息,优化本地代码

Isolate

Isolate

一个 Isolate 是一个独立的虚拟机。对应一个或多个线程。但同一时刻 只能被一个线程进入。所有的 Isolate 彼此之间是完全隔离的, 它们不能够有任何共享的资源。如果不显示创建 Isolate, 会自动创建一个默认的 Isolate。

堆的构成

v8的堆

模块加载

  1. 如果模块在缓存中,返回它的exports对象
  2. 如果是原生的模块,通过 NativeModule.require() 返回结果
  3. 否则,创建一个新的模块,并保存到缓存中

可见,被缓存命中的程序拥有最高加载权

事件循环

事件循环
上一篇下一篇

猜你喜欢

热点阅读