zoukankan      html  css  js  c++  java
  • 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可能更好)    

  • 相关阅读:
    JSP页面重定向与页面内容转发
    tomcat访问所有的资源,都是用Servlet来实现的
    War包是什么??
    jsp中include的两种用法
    TED #05# How we can face the future without fear, together
    TED #04#
    学写网页 #03# 固定在某个角落
    TED #03# 10 ways to have a better conversation
    TED #02#
    学写网页 #02# 无题
  • 原文地址:https://www.cnblogs.com/dereklovecc/p/4582102.html
Copyright © 2011-2022 走看看