WebSocket框架性能比较
https://blog.csdn.net/huangshulang1234/article/details/78746451
- 本人目前使用的是Nodejs作为WebSocket后端,有篇关于WebSocket框架的性能比较可以参考。
- Netty:http://netty.io/
- Undertow:http://undertow.io/
- Jetty:http://www.eclipse.org/jetty/
- Vert.x:http://http//vertx.io
- Grizzly:https://grizzly.java.net/
- spray-websocket:https://github.com/wandoulabs/spray-websocket
- nodejs-websocket/Node.js:https://github.com/sitegui/nodejs-websocket
- Go:https://golang.org/
详细测试数据请参考:https://blog.csdn.net/huangshulang1234/article/details/78746451
- 测试结果分析:
Netty, Go, Node.js, Undertow, Vert.x都能正常建立百万连接。 Jetty, Grizzly 和 Spray未能完成百万连接
Netty表现最好。内存占用非常的少, CPU使用率也不高。 尤其内存占用,远远小于其它框架
Jetty, Grizzly和Spray会产生大量的中间对象,导致垃圾回收频繁。Jetty表现最差
Node.js表现非常好。 尤其是测试中使用单实例单线程,建立速度非常快,消息的latency也很好。 内存占用也不错
Undertow表现也不错,内存占用比Netty高一些,其它差不多
这里还未测到Spray另一个不好的地方。 在大量连接的情况小,即使没有消息发送,Spray也会占用40% CPU 时间
- 结论:
虽然Nodejs不是表现最优的,但排名三甲,开发维护效率和部署成本也都相对出色,所以选择了Nodejs