小编cod*_*LMN的帖子

在HTTP模式下,node.js是否比Java具有显着的性能优势?

我刚刚开始在node.js中编写代码一段时间.现在,这是我的一个问题:

在HTTP应用程序中,给定请求 - 响应模型,单个应用程序线程被阻塞,直到所有后端任务完成并且响应返回给客户端,因此性能改进似乎仅限于微调后端事务,如微调并行化IO请求.(当涉及到涉及许多繁重独立的 IO操作时,这种改进很重要,但通常条件还意味着通过重新设计数据结构,您可以消除大量IO请求,并可能最终获得更好的性能而不仅仅是发布并行操作.)

如果这是真的,那么它怎么能比那些基于Java(或PHP,python等)的框架产生更好的性能呢?

我还提到了一篇文章了解node.js事件循环,这也解释了这种情况:

它实际上是一个单线程运行:你不能执行任何并行代码执行; 例如,进行"休眠"将阻止服务器一秒钟:

while(new Date().getTime() < now + 1000) {
   // do nothing
}
Run Code Online (Sandbox Code Playgroud)

...但是,除了你的代码之外,一切都是并行的.

我个人验证了通过将"睡眠"代码完全放入一个IO回调闭包,并尝试提交导致此回调的请求,然后提交另一个.两个请求在处理时都会触发控制台日志.我的观察是后者被阻止,直到前者回复了一个回复.

那么,它是否意味着只有在套接字模式下,双方都可以随时发送事件并相互推送消息,是否可以充分利用其异步处理能力?

我有点困惑.欢迎提出任何意见或建议.谢谢!

更新

我问这个问题是因为报告了一些性能评估案例,例如Node.js正在接管企业 - 无论你喜欢与否,LinkedIn从Rails迁移到节点:27台服务器切割速度提高了20倍.一些激进的观点声称J2EE将被完全取代:J2EE已死:由JSON Services支持的长期Javascript.

java sockets performance http node.js

10
推荐指数
2
解决办法
3590
查看次数

标签 统计

http ×1

java ×1

node.js ×1

performance ×1

sockets ×1