当前位置 : 主页 > 网页制作 > Nodejs >

node.js – nodejs(nodejs.org/)经验/评论

来源:互联网 收集:自由互联 发布时间:2021-06-16
有没有人经历过nodeJS?性能怎么样?内存管理? 我正在寻找一种技术,可以让我创建一个实时的网络应用程序跟踪系统和聊天. 如果您考虑并决定不使用它,您使用了什么? 记忆 Node.js的
有没有人经历过nodeJS?性能怎么样?内存管理?

我正在寻找一种技术,可以让我创建一个实时的网络应用程序跟踪系统和聊天.

如果您考虑并决定不使用它,您使用了什么?

记忆

Node.js的优势来自于它能够保持大量连接的开放和闲置.例如Apache需要连接限制(有时它低至20个并发连接,具体取决于您的服务器环境),因为它为每个连接分配2 MB内存,Node.js不需要. Apache也不喜欢因为这个问题而保持连接打开,并且保持连接打开变得麻烦.

节点应用程序被编程为单个线程(尽管在后台它使用线程进行各种阻塞操作,但不是基于每个连接).如果您已经在Erlang中编程,您可能知道如何解放其他代理(或连接)正在做什么,同时仍然能够在(虚拟)实例之间共享数据而无需任何额外的努力.

理论上,Node可以处理与系统上允许的最大文件描述符/套接字数一样多的连接.在windows中(使用cygwin)这大约是65536,而在unix上我打赌更多是可能的,虽然理论上无限制(服务器端在端口80上,65536个连接可以处理到每个目的地).在Apache中,这甚至会在遇到2000个用户之前导致内存分配问题.

实际上,这些只是数字,它们受到许多其他因素的影响,例如您的应用程序实际处理的数据量可以传递到给定的子集(甚至所有)连接.更现实的估计是,它可以处理20-25,000个具有平均活动的用户而没有任何明显的滞后.我知道可以处理这么多并发用户的唯一纯单服务器设置是用C编程的IRC服务器,尽管可能还有一些Web服务器(如nginx)可以处理它.

性能

Node使用谷歌的V8 JavaScript引擎,这意味着它的速度很快,而且每周都会变得更快.

Node的一个优点是它使用异步I / O,因此当一个用户必须等待从磁盘或数据库调用中读取文件时,节点将其放在后台(记住我说它在后台使用线程) )让我们等待,而在主线程中它继续进行下一个任务.这确保它始终保持移动.即使任何给定的用户可能有轻微的延迟,其他用户也不会被它拖延.

socket.io

这是用于通信的库.您可以在http://socket.io找到更多信息

它还附带了一个非常简单的聊天示例,你不禁觉得它很棒.

哦,记得自己尝试Node并根据它做出决定.它对一切都不是很好,但它对很多事情来说都是一个不错的选择.

网友评论