Node.js 适应场景
2016-07-11 20:53
253 查看
Node.js 简介:
Node.js 是谷歌 V8 引擎、libuv平台抽象层 以及主体使用 Javscript 编写的核心库三者集合的一个包装外壳,使用事件驱动来实现异步开发的优秀解决方案。
Node.js 的主要思路:
使用非阻塞的,事件驱动的 I/O 操作来保持在处理跨平台 数据密集型实时应用时的轻巧高效。
Node.js
原理:
传统的网络服务技术,是每个新增一个连接(请求)便生成一个新的线程,这个新的线程会占用系统内存,最终会占掉所有的可用内存。而 Node.js 仅仅只运行在一个单线程中,使用非阻塞的异步 I/O 调用,所有连接都由该线程处理,在 libuv 的加分下,可以允许其支持数万并发连接(全部挂在该线程的事件循环中)。
Node.js
特点:
1. 它是一个Javascript运行环境
2. 高性能,依赖于Chrome V8引擎进行代码解释
3. 事件驱动
4. 非阻塞I/O
5. 轻量、可伸缩,适于实时数据交互应用
6. 单进程,单线程,占用资源小,因为是单线程,在大负荷情况下,对内存占用仍然很低
7. 线程安全,没有加锁、解锁、死锁这些问题
Node.js 与JavaScript 关系:
Node.js
适应场景:
1、单页面应用
2、系统监控
3、聊天应用
4、I/O 密集应用
5、实时交互应用 (对象数据接口)
6、工具类
Node.js
不合适的地方使用:
1、使用关系型数据库的服务端 WEB 应用
2、繁重的服务端的计算和处理
参考文章:
http://blog.jobbole.com/53736/
http://blog.csdn.net/xiaemperor/article/details/38234979
Node.js 是谷歌 V8 引擎、libuv平台抽象层 以及主体使用 Javscript 编写的核心库三者集合的一个包装外壳,使用事件驱动来实现异步开发的优秀解决方案。
Node.js 的主要思路:
使用非阻塞的,事件驱动的 I/O 操作来保持在处理跨平台 数据密集型实时应用时的轻巧高效。
Node.js
原理:
传统的网络服务技术,是每个新增一个连接(请求)便生成一个新的线程,这个新的线程会占用系统内存,最终会占掉所有的可用内存。而 Node.js 仅仅只运行在一个单线程中,使用非阻塞的异步 I/O 调用,所有连接都由该线程处理,在 libuv 的加分下,可以允许其支持数万并发连接(全部挂在该线程的事件循环中)。
Node.js
特点:
1. 它是一个Javascript运行环境
2. 高性能,依赖于Chrome V8引擎进行代码解释
3. 事件驱动
4. 非阻塞I/O
5. 轻量、可伸缩,适于实时数据交互应用
6. 单进程,单线程,占用资源小,因为是单线程,在大负荷情况下,对内存占用仍然很低
7. 线程安全,没有加锁、解锁、死锁这些问题
Node.js 与JavaScript 关系:
Node.js
适应场景:
1、单页面应用
2、系统监控
3、聊天应用
4、I/O 密集应用
5、实时交互应用 (对象数据接口)
6、工具类
Node.js
不合适的地方使用:
1、使用关系型数据库的服务端 WEB 应用
2、繁重的服务端的计算和处理
参考文章:
http://blog.jobbole.com/53736/
http://blog.csdn.net/xiaemperor/article/details/38234979
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- 使用 HTTP 上传 G 级的文件之 Node.js 版本
- JavaScript演示排序算法
- mongo实现消息队列
- javascript实现10进制转为N进制数
- Node.js压缩web项目中的js,css和图片
- 最后一次说说闭包
- Ajax
- node连接mysql数据库
- 2019年开发人员应该学习的8个JavaScript框架
- 使用 Node.js 构建交互式命令行工具
- HTML中的script标签研究
- 对一个分号引发的错误研究
- async.js 学习记录
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)