Node.js 入门
2015-05-30 08:30
405 查看
nodejs可以用来做什么
具有复杂逻辑的网站;
基于社交网络的大规模 Web 应用;
Web Socket 服务器;
TCP/UDP 套接字应用程序; 8
命令行工具;
交互式终端程序;
带有图形用户界面的本地应用程序;
单元测试工具;
客户端 JavaScript 编译器
异步式 I/O 与事件驱动
Node.js 最大的特点就是采用异步式 I/O 与事件驱动的架构设计。对于高并发的解决方 案,传统的架构是多线程模型,也就是为每个业务逻辑提供一个系统线程,通过系统线程切 换来弥补同步式 I/O 调用时的时间开销。Node.js 使用的是单线程模型,对于所有 I/O 都采用 异步式的请求方式,避免了频繁的上下文切换。Node.js 在执行的过程中会维护一个事件队 列,程序在执行时进入事件循环等待下一个事件到来,每个异步式 I/O 请求完成后会被推送 到事件队列,等待程序进程进行处理 看下图:
![](http://images0.cnblogs.com/blog2015/434220/201505/300750422667551.png)
缺点:
因为它不符合开发者的常规线性思路,往往 需要把一个完整的逻辑拆分为一个个事件,增加了开发和调试难度
Nodejs的性能
Node.js 用异步式 I/O 和事件驱动代替多线程,带来了可观的性能提升。Node.js 除了使 用 V8 作为JavaScript引擎以外,还使用了高效的 libev 和 libeio 库支持事件驱动和异步式 I/O
nodejs的架构图:
![](http://images0.cnblogs.com/blog2015/434220/201505/300756071109992.png)
nodejs性能对比就参考下网上的很多文章啦
具有复杂逻辑的网站;
基于社交网络的大规模 Web 应用;
Web Socket 服务器;
TCP/UDP 套接字应用程序; 8
命令行工具;
交互式终端程序;
带有图形用户界面的本地应用程序;
单元测试工具;
客户端 JavaScript 编译器
异步式 I/O 与事件驱动
Node.js 最大的特点就是采用异步式 I/O 与事件驱动的架构设计。对于高并发的解决方 案,传统的架构是多线程模型,也就是为每个业务逻辑提供一个系统线程,通过系统线程切 换来弥补同步式 I/O 调用时的时间开销。Node.js 使用的是单线程模型,对于所有 I/O 都采用 异步式的请求方式,避免了频繁的上下文切换。Node.js 在执行的过程中会维护一个事件队 列,程序在执行时进入事件循环等待下一个事件到来,每个异步式 I/O 请求完成后会被推送 到事件队列,等待程序进程进行处理 看下图:
![](http://images0.cnblogs.com/blog2015/434220/201505/300750422667551.png)
缺点:
因为它不符合开发者的常规线性思路,往往 需要把一个完整的逻辑拆分为一个个事件,增加了开发和调试难度
Nodejs的性能
Node.js 用异步式 I/O 和事件驱动代替多线程,带来了可观的性能提升。Node.js 除了使 用 V8 作为JavaScript引擎以外,还使用了高效的 libev 和 libeio 库支持事件驱动和异步式 I/O
nodejs的架构图:
![](http://images0.cnblogs.com/blog2015/434220/201505/300756071109992.png)
nodejs性能对比就参考下网上的很多文章啦
相关文章推荐
- [LeetCode][JavaScript]Reverse Nodes in k-Group
- demopu提供《Nodejs即学即用》PDF下载
- 在类模板中关于Node的类模板已经定义问题
- Node.js模拟浏览器文件上传
- nodejs ejs 引号问题
- nodejs获取参数
- nodejs使用npm发布模块带npm报错(verbose stack Error: Invalid name: "")解决
- 开发nodejs模块并发布到npm的简单示例(win7)
- ajax请求node.js接口时出现跨域问题Access-Control-Allow-Origin
- Node.js 函数
- Node.js 路由
- Node.js模块系统
- Node.js 事件
- Node.js 路由
- NodeJS的简介和安装配置
- sublime text2 nodejs插件安装
- nodejs代码修改记录
- queue-fun —— nodejs下基于Promise的队列控制模块。
- hadoop中NameNode、DataNode、Secondary、NameNode、JobTracker TaskTracker介绍
- Node.js缓冲模块Buffer