Node简介

2022-11-24 0 478

Node的问世心路历程

前述这首诗较好的如是说了Node整座时间心路历程的关键节点。

为何Node优先选择了JavaScript

最主要的其原因是Node的译者Ryan Dahl认为结构设计两个高效能的Web伺服器的几个关键点: 结构设计模式, 非堵塞I/O,而JavaScript不仅较好的切合了他的须要, 而且词汇这类没有历史本钱, 再加之V8发动机的操控性出众, 最后决定优先选择JavaScript。

Node的模块形成
Node简介
– V8: Google 开放源码的高操控性 JavaScript 发动机,以 C++ 实现,V8 将你写的 JavaScript 标识符校对为机器语言(所以它DT快)然后继续执行。 – libuv: 提供更多触发器机能的 C 库。它在运转时负责管理两个该事件循环式(Event Loop)、两个缓存池、磁盘 I/O、DNS 有关和互联网 I/O,和许多其它关键机能。 – 其它 C/C++ 模块和库: 如 c-ares、crypto (OpenSSL)、http-parser 和 zlib。这些倚赖提供更多了Vertus下层机能的出访,包括互联网、填充、身份验证等。 – Application/Modules: 该些就是大部份的 JavaScript 标识符:你的插件、Node.js 核心理念模块、任何人 npm install 的模块,和你写的大部份模块标识符。你耗费的主要心力都在该些。 – Bindings: Binding 是许多肥皂标识符,能把不同词汇存取在一同使其能相互沟通交流。在 Node.js 中,binding 所做的是把 Node.js 那些用 C/C++ 写的库USB曝露给 JS 环境。这么做的目地之一是标识符宠信. – C/C++ Addons: Binding 仅转接 Node.js 核心理念库的许多倚赖,zlib、OpenSSL、c-ares、http-parser 等。如果你想在插件中包涵其它服务器端或是你他们的 C/C++ 库不然,须要他们顺利完成该些肥皂标识符。你写的该些肥皂标识符就称作 Addon。可以把 Binding 和 Addon 视作相连 JavaScript 标识符和 C/C++ 标识符的公路桥。
Node的特征触发器IO

触发器初始化中对于结论值的捕捉是合乎“Dont call me, I will call you.”的准则的,这是著重结论不重视过程的一种表现。

Node简介
Node中经典的触发器初始化该事件与回调函数

Node.js实现触发器的核心理念是结构设计模式。也是说,它把每两个任务都当成该事件来处理,然后通过Event Loop模拟了触发器的效果, 而能体现结构设计模式机制本质的最简单形式是函数的回调。

Node中的绝大多数对象,比如HTTP请求,响应,流,都是实现了EventEmitter模块,所以它们可以触发或监听该事件。

https://medium.freecodecamp.org/understanding-node-js-event-driven-architecture-223292fcbc2dmedium.freecodecamp.org/understanding-node-js-event-driven-architecture-223292fcbc2d
单缓存

这里的单缓存指的是Node保留了JavaScript在浏览器中的单缓存特性, 单缓存的好处是不像多缓存须要考虑状态的同步问题, 死锁, 和缓存之间切换的操控性开销。

单缓存的弊端:

1. 无法利用多核CPU 2. 健壮性不好 3. 大量计算占用CPU导致无法继续初始化触发器I/O

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务