美文网首页
NODE 学习 --- 介绍

NODE 学习 --- 介绍

作者: TaoGeNet | 来源:发表于2017-05-10 16:09 被阅读27次

    NODE 是什么?

    不是独立的语言   不是JavaScript框架  是能都让JavaScript运行在服务端的开发平台

    NODE 可以作为服务器向用户提供服务,与PHP、Python相比,跳过了Apache、Nginx等HTTP服务器面向用户提供服务,直接面向前端开发。

    Node.js 与JavaScript区别

    传统意义上的JavaScript是有ECMAScript、文档对象模型(DOM)和浏览器对象模型(BOM)组成

    Node.js 只包含ECMAScript的一个实现,不包含DOM和BOM

    Node.js 是一个让JavaScript运行在浏览器之外平台,实现了诸如文件系统、模块包、操作系统API、网络通信等Core JavaScript没有或者不完善的功能

    Node.js 能做什么

    具有复杂逻辑得网站

    基于社交网络的大规模web应用

    Web Socket 服务器

    TCP/UDP套接字应用程序

    命令行工具

    交互式终端程序

    带有图像用户界面的本地应用程序

    单元测试工具

    客户端JavaScript编译器

    Node.js 内建了HTTP服务器,可以轻而易举地实现一个网站和服务器的组合,免去搭建和调用HTTP服务器的过程

    异步式I/O与事件驱动

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

    Node.js 的异步机制是基于事件的,所有的磁盘I/O、网络通信、数据库查询都以非阻塞的方式请求,返回的结果由事件循环来处理。Node.js进程在同一时刻只会处理一个事件,完成后立即进入事件循环检查并处理后面的事件。

    Node.js 的架构

    Node.js 用异步式I/O和事件驱动代替多线程,带来可观的性能提升。Node.js除了使用V8作为JavaScript引擎以外,还使用了高效的libev和libio库支持事件驱动和异步式I/O。Node.js 的开发者在libev和libeio的基础上还抽象了层libuv来实现跨平台,提供给POSIX操作系统和windows使用。

    Node.js与PHP + Nginx性能对比

    Snoopyxd详细对比了Node.js与PHP+Nginx组合,结果显示在3000并发连接、30秒的

    测试下,输出“hello world”请求:

             PHP每秒响应请求数为3624,平均每个请求响应时间为0.39秒;

             Node.js每秒响应请求数为7677,平均每个请求响应时间为0.13秒。

    而同样的测试,对MySQL查询操作:

             PHP每秒响应请求数为1293,平均每个请求响应时间为0.82秒;

             Node.js每秒响应请求数为2999,平均每个请求响应时间为0.33秒。

    相关文章

      网友评论

          本文标题:NODE 学习 --- 介绍

          本文链接:https://www.haomeiwen.com/subject/eqvwtxtx.html