Node.js 入门

nodejs可以用来做什么

 具有复杂逻辑的网站;
 基于社交网络的大规模 Web 应用;
 Web Socket 服务器;
 TCP/UDP 套接字应用程序; 8  命令行工具;
 交互式终端程序;
 带有图形用户界面的本地应用程序;
 单元测试工具;
 客户端 JavaScript 编译器

异步式 I/O 与事件驱动 

Node.js 最大的特点就是采用异步式 I/O 与事件驱动的架构设计。对于高并发的解决方 案,传统的架构是多线程模型,也就是为每个业务逻辑提供一个系统线程,通过系统线程切 换来弥补同步式 I/O 调用时的时间开销。Node.js 使用的是单线程模型,对于所有 I/O 都采用 异步式的请求方式,避免了频繁的上下文切换。Node.js 在执行的过程中会维护一个事件队 列,程序在执行时进入事件循环等待下一个事件到来,每个异步式 I/O 请求完成后会被推送 到事件队列,等待程序进程进行处理 看下图:

缺点:

因为它不符合开发者的常规线性思路,往往 需要把一个完整的逻辑拆分为一个个事件,增加了开发和调试难度 

Nodejs的性能

Node.js 用异步式 I/O 和事件驱动代替多线程,带来了可观的性能提升。Node.js 除了使 用 V8 作为JavaScript引擎以外,还使用了高效的 libev 和 libeio 库支持事件驱动和异步式 I/O 

nodejs的架构图:

nodejs性能对比就参考下网上的很多文章啦

原文地址:https://www.cnblogs.com/greenboy/p/4539793.html