每隔几个星期,就有人发表Java和Node比较的性能评测,像PayPal 或者 Joey Whelan 发表的帖子.作为Node很多公共管理模块核心的维护者和贡献者之一,Strong Loop 很高兴看到Node的获胜。每个人都知道,评测是一个特殊的衡量方式,其实并不适用于所有的情况。有时候Java要快一些,有时候Node要快一些。当然,用什么和怎么衡量才是最重要的。
高并发性问题
但是,有一件事我们都认同:为了能适应高并发的情况(成千上万的连接),你的服务器需要采用异步非阻塞模式。你可能已经在IO操作中实现了这种方式。但问题是,如果你的服务器代码的任何部分可能产生阻塞,你都需要开启一个线程。在这种级别的并发下,你不能去为每个连接创建线程。所以整个代码路径都需要异步非阻塞式的, 不仅仅在输入输出层。这就是Node擅长的地方。尽管Java或Node或其他技术可能赢得一个评测,但到现在为止还没有任何服务器端的语言,实现了像Node.js那样完整的非阻塞生态系统。Node已经实现了超过5W的异步方式的模块了。散落在无数网页的代码示例里,所有的课程和教程都在使用这种异步方式。调试、显示、记录、集群管理、测试框架甚至更多其他更多代码都是你所期待的非阻塞异步模式。
直到Java或另一种语言生态系统能到达支持这种异步模式的程度(在Node中能达到这种水平,是因为JavaScript在浏览器中天生的异步基因), 尽管它原始的非阻塞操作(non-blocking IO)性能可能比node或其他任何评测结果表现的更好;需要大并发的项目会选择Node(并且忍受他的缺点),因为它是完成我们项目的最好方式。
大公司, 供应商和社区
我们要帮助让Node和其系统工具和库保持成熟。其他人也在做着同样的事情,从LinkedIn,雅虎与Groupon这样的大用户到像微软,MuleSoft Appcelerator这样的供应商和个人开发者每年贡献成千上万个有用的模块。Node将变得会越来越好,我们会帮助修复缺点或完全消除它们,异步的时代将会带我们进入数以百万计的连接设备的乐土。
使用StrongOps 监控node应用程序
准备好开始监视事件循环(Event Loop),管理节点集群(node cluster)并找出内存泄漏了吗?我们可以很容易通过一个简单的npm命令安装,或从你本地,或你最喜欢的云开始使用StrongOps:
@静夜思
多谢建议,已经校对,欢迎指出翻译不当的地方。
人家只是翻译一下……
两种语言的性能对比,很快地不知不觉转移到IO模型的对比,有意思吗?
也不能算是两种语言的的对比,应该是两个虚拟机的性能对比!
我只想说再好的语言也架不住乱写代码的
Nodejs确实不错哦,要学的朋友,这里有一系列的视频教程 http://www.sucaihuo.com/video/224-0-0