最近在学习nodejs,对nodejs的原理做了以下总结:
nodejs是什么?
可以把nodejs理解成是一个运行在服务端的基于chrome v8 engine的js运行环境。
nodejs优势?
由于nodejs使用的是事件驱动,非阻塞的I/O模型,因此nodejs执行效率非常高。
nodejs缺点?
nodejs对I/O的处理非常高效,但是对cpu密集型应用,会导致主线程阻塞,阻止后续程序执行。
nodejs组成:
1,v8 engine:
v8引擎主要有两个作用:
一是作为虚拟机,负责js的解释执行;
二是提供c++函数接口,为nodejs提供v8初始化,创建context、scope等。
2,libuv:
libuv是基于事件驱动的异步I/O模型库,nodejs中事件、线程、I/O等操作都依赖libuv实现。
3,builtin modules(内置模块)
内置模块是由c++编写的模块,一般用于native modules调用。
4,native modules
native module指由js编写的模块,如http、crypto、zlib、buffer、fs等等,同时这些模块又依赖builtin modules来获取相应的服务支持。
参考: