写点什么

深入浅出 Node.js 第一章阅读总结

用户头像
Alex
关注
发布于: 50 分钟前
  1. Node.js 被设计出来的目的就是要做一个高性能的 web 服务器,所以它是为服务器而生的而不是只做前端。

  2. Node.js 设计必须要达到以下 2 点才能符合 Ryan Dahl 设计高性能服务器的初衷

  • 事件驱动

  • 非阻塞 I/O

  1. 由于 JavaScript 的特点非常符合 Node.js 的设计理念,而且 Chrome 的 V8 引擎在第二次浏览器大战中由于性能强大而胜出。所以奠定了 JavaScript 成为 Node.js 编写语言的基础。

  2. 由于 Node.js 使用 JavaScript 来编写,所以也有了单线程的特点。

  3. 单线程的优缺点

优点:

  • 不会出现多线程的死锁问题

  • 线程切换带来的性能消耗

  • 编程时针对多线程数据同步的考虑

  • 适合在 I/O 密集的场景使用

  • 等等

缺点:

  • 无法利用多核 CPU

  • 错误会引起整个应用退出

  • 大量计算占用 CPU 导致无法继续调用异步 I/O。简单来说就是不太适用在 CPU 密集型的场景。

  1. 针对单线程的缺点,Node.js 提供了两种解决方案

  • 靠自身,就是使用开多个进程实现

  • 靠第三方,就是调用自己编写的 C/C++扩展工具实现

  1. 根据以下 Node.js 的组件结构图可以得出,Node.js 是靠中间层(Libuv)操作底层的硬件和跨平台操作

Node.js 的组件结构图

用户头像

Alex

关注

还未添加个人签名 2018.06.04 加入

还未添加个人简介

评论

发布
暂无评论
深入浅出Node.js第一章阅读总结