websocket实现的性能比较
编辑:防止closures这个问题,我只是把它缩小到必要的。
有人可以在下面列出的两个websocket实现之间共享MB / s的性能testing吗? 应用程序或硬件细节是不相关的,只是一个简单的常见场景的两个粗略的数字就足够了。
原来的问题
有人testing了这两个websocket实现node.js的性能吗?
- WebSocket的节点
- WS
我最近找不到任何东西(只是2012-2013的一些文章)。 我想看到的是:
- 开销(如果有的话,考虑到实际的networking延迟更相关,我想他们都收敛到0)
- 吞吐量(一个简单的MB / S图相同的应用程序/硬件会很好)
- 真的可以在networking层面上广播数据(尽pipe有底层的TCP?这是可能的吗?)还是仅仅是一个被滥用的方法名称(实际上在
for()
循环中向多个客户端发送相同的消息)?
更好:
- 有/无Naglealgorithm的比较
- JSON与二进制消息的比较
编辑:更新与更新,更快的实施信息
我整合在这里NiCk纽曼的16年6月17日在20:08评论,以避免它以任何方式迷路。
uWS是一个更新,更快的websocket实现。 一些开发者报告了有希望的结果。 对于简单的情况,这几乎是一件容易的事情。 因此下面的讨论有些被取代。
我想知道为什么没人能回答这个问题。 所以,经过更长时间的search之后,我已经完成了,直到我终于来到这个页面,给出了一些答案。
我把它发布在这里,并回答我自己的问题,以便其他人寻找它更容易。
该页面是ws的基准比较 。 是的,这是非常简单的,但它被埋没了。
以下是相关结果:
在我的情况下,我想发送4-16KB的JSON消息(甚至4KB是夸张的,大多数消息将只是100-200个字符)。 第一张图显示,最多64KB没有明显的差别。 只有更大的消息(大约16MB),ws比websocket-node更快。
对于二进制消息,两者是相同的(如果不相同)。 这让我想知道他们是否以某种方式在github上借用了代码。 这将是很好的顺便说一句,因为都在Github上分享和叉,等等。
下面的图表显示了与stream媒体相关的消息碎片,但是我不感兴趣。所以上面的答案是我的问题:
- 对于非分段文本消息,性能是相同的(最高16MB)
- 性能对于非分段二进制消息是相同的(没有大小限制)