• Node.js简介


    什么是Node.js?

    Node.js是一个JavaScript的运行平台,而非JavaScript应用。它是一个使用C++编写,后端即Server端的JavaScript运行环境,采用的是google的V8引擎,支持的系统包括*nux, windows。大家知道传统的JavaScript运行于浏览器中并会受到各种安全限制,从而能对客户系统所做的操作有限,然而Node.js是一个全面的后台应用程序平台,为JavaScript具有和其他语言一样的能力提供了环境。

    Node.js的优缺点

    Node.js与众不同的主要特点是异步,事件驱动。它选择单进程,单线程的实现模式,在内部维护一个事件循环队列,从而避免线程上下文切换的开销。根据其设计理念,我们可以看出在大负载面前,它对内存的要求比较小,而对CPU的要求较高。至于优缺点,我认为分两个层面:设计层面和应用层面

    设计层面:由于异步IO及事件驱动的特点,其适用于IO密集型的计算环境,而对于CPU密集型的任务,由于使用了单进程,单线程的方式,其无法同时处理多个任务从而性能低下。对于CPU多核化日益流行的今天,我们虽然可以通过启用多个Node.js进程来充分利用其资源,但是进程间通信又是一个问题,复杂业务逻辑所需要的事务操作等又很难使其跨越多个进程。

    应用层面:使用JavaScript作为其开发语言,JavaScript是前端的主力开发语言使用极其广泛,JavaScript的匿名函数和闭包特性使得编写事件驱动和异步编程非常方便,JavaScript在脚本语言中性能较好。然而由于JavaScript是脚本语言,对于大规模的项目来说,脚本语言的维护成本还是可能较高。

    基于以上特点,Node.js适用和不适用的场景如下:

    不适用场景:CPU密集型的程序如视屏解码,AI等;简单的Web CRUD HTML程序(使用PHP,Python,Ruby等更加成熟高效);

    适用场景:JSON API(包装其他的数据源如数据库和Web Service);SPA(在客户端大量使用AJAX调用Node.js server);Streaming Data;软实时程序如Chat等IM(对于硬实时程序Erlang可能更好)    

  • 相关阅读:
    jQuery.messager 使用
    对应后台传json ajax 获取值判断
    easyui datagrid nowrap 使用方法
    easyui combogrid setValues
    去除字符串中所有的逗号
    datagrid loadData 使用方法
    使用git下载一个项目
    java中读取文本文件的时候@Test方法中没有中文乱码,但是@Controller中却有中文乱码
    IDEA启动项目的时候,控制台中显示的都是乱码
    微信流量主点击量与曝光量是什么意思
  • 原文地址:https://www.cnblogs.com/dereklovecc/p/4582102.html
Copyright © 2020-2023  润新知