nodejs深入浅出

1.5.1 Node应用场景

Node面向网络并且擅长I/O,能够有效地阻止起更多的硬件资源,从而提供更好的服务
I/O密集的优势主要在与Node利用事件循环的处理能力,而不是启动每一个线程为每一个请求服务,资源占用极少

1.5.2 是否不擅长CPU密集型业务

I/O阻塞造成的性能浪费远比CPU的影响小。对于长时间运行的计算,如果它的耗时超过普通阻塞I/O的耗时,那么应用场景就需要重新评估。通过子进程的方式,将一部分Node进程当作常驻服务进程用于计算,然后利用进程间的消息来传递结果,将计算与I/O分离 ,CPU密集不可怕,如何合理调度是诀窍

2.2 Node的模块实现

在Node中引入模块,需要经历如下3个步骤
1.路径分析
2.文件定位
3.编译执行
在node中,模块分为两类,一类是node提供的模块,称为 核心模块;另一类是用户编写的模块,称为文件模块

  • 核心模块在node源代码的编译过程中,编译进了二进制执行文件。在node进程启动时,部分核心模块就直接被直接加载到了内存中,所以 核心模块引入时,文件定位和编译执行两个步骤可以省略,并且在路径分析中优先判断,
  • 文件模块则是在运行时动态加载,需要完整的 路径分析,文件定位和编译执行。

你可能感兴趣的:(nodejs深入浅出)