node.js 适合什么应用

  1. 对于计算密集型的,比如字符处理,数学计算,这全得靠v8 javascript引擎当家,并且这类运算也会阻塞 node 程序,和并发无关。

  2. 对于io密集型的,比如网络,文件,数据库,这得靠异步,如果一次请求中可并行处理的io任务比较多,那么node应该是快的;如果一次请求中的io操作有前后关系,不能颠倒顺序,必须串行执行,则异步并不会提高这类请求的执行速度。

注意对于计算密集型的应用:除非你用另一个程序专门处理此类运算,则负责客户请求的 nodejs 程序不会被阻塞,这实际上是把阻塞的运算转化为 IO 等待。这么做似乎多此一举,但对于负责客户请求的node程序来说是有益的,他的阻塞减少了,可处理更多并发连接。