Node.js采用了谷歌的v8引擎,同时提供了多个系统级的API,这样就避免了在浏览器端运行javascript代码各种的限制,而node.js就是运行在服务器端的js代码。
JavaScript原始运行环境
JavaScript最早在浏览器中值扮演个提供上下文的角色,但是没有表明JavaScript具体是什么,他是一门完整的语言。
node
node事实上就是另外一种形式的上下文,就是node解决了JavaScript依赖浏览器运行,使得JavaScript语言可以脱离浏览器的环境,允许在后端使用JavaScript代码,除此之外node还提供了许多有用的模块。因此node事实上就是 个运行时的环境,也是一个库。
node.js的特点
node.js采用事件驱动,异步编程,为网络服务而设计
node.js的特点,可以根据程序的需要进行取舍
- 可靠性低
- 高性能
- 单线程
- 异步事件驱动
- 非阻塞I/O
- 轻量高效*
node.js的性能测试
node采用单线程的放行来运行程序,事件驱动机制是node通过内部单线程高效率的时间循环队列来实现的,没有多线程的资源站用和上下文替换,node借助事件驱动搞定了全部请求,但是,这样的设计会将复杂i的压力集中在CPU(事件循环处理)而不是内存中.因此使用弄node.js加大了cpu的处理负荷,这也是单线程的弊病之一.
nodejs的优缺点
1.优点:1高并发(最重要的优点)
适合环境:适合I/O密集型应用
缺点:不适合CPU密集型应用,带来 的主要挑战是由于js单线程运行事件过长,将会导致CPU不能释放,是的后续I/O无法发起
解决方案:分解大型计算任务为多个小型的任务,是的运算能够适时释放,不阻塞I/O调用的发起
2.只支持单核CPU,不能充分利用CPU
3.可靠性低,一旦某个环节崩溃,整个系统都会崩溃
原因:单线程,单进程
解决方案:开多个进程,绑定多个端口