gpt4 book ai didi

node.js - websocket实现的性能比较

转载 作者:太空宇宙 更新时间:2023-11-03 21:59:17 25 4
gpt4 key购买 nike

编辑:为了防止关闭这个问题,我将其范围缩小到本质。

Can someone share a performance test in MB/s between the two websocket implementations listed below? Application or hardware details are irrelevant, just two crude numbers for a simple common scenario will suffice.

<小时/>

原始问题

有人测试过 node.js 这两个 websocket 实现的性能吗?

我找不到最近的任何内容(只是 2012-2013 年的一堆文章)。我希望看到的是:

  • 开销(如果有的话,考虑到实际的网络延迟更相关,我猜它们都会收敛到 0)
  • 吞吐量(相同应用程序/硬件的简单 MB/S 数字就很好)
  • 真的可以ws在网络级别上广播数据吗(尽管有底层TCP?这可能吗?)或者它只是一个被滥用的方法名称(实际上在 for() 循环中向多个客户端发送相同的消息)?

更好:

  • 使用/不使用 Nagle 算法的比较
  • JSON 与二进制消息的比较

最佳答案

编辑:更新了有关更新、更快实现的信息

我在这里整合了 NiCk Newman2016 年 6 月 17 日 20:08 评论,以避免它以任何方式丢失。

更新且更快的 websockets 实现是 uWS 。几位开发人员报告了有希望的结果。对于简单的情况,这几乎是理所当然的。因此,下面的讨论在某种程度上被取代。

<小时/>

我想知道为什么没有人能回答这个问题。因此,经过更多小时的搜索,我终于来到了这个页面,其中给出了一些答案。

我将其发布在这里并回答我自己的问题,以便其他搜索它的人更容易找到它。

页面是 benchmark comparison of ws 。是的,它非常简单,但不知何故被掩盖了。

以下是相关结果:

就我而言,我想发送 4-16KB JSON 消息(即使 4KB 也有点夸张,大多数消息只有 100-200 个字符)。第一张图显示,对于 64KB 以下的数据,根本没有明显的差异。仅对于较大的消息(大约 16MB),ws 比 websocket-node 更快变得越来越明显。

对于二进制消息,两者是相同的(如果不相同)。这让我想知道他们是否以某种方式在 GitHub 上互相借用了代码。顺便说一句,这会很好,因为两者都在 GitHub 上可以共享和 fork 等等。

下图显示了消息碎片,这与流式传输相关,但我对此不感兴趣。所以上面回答了我的问题:

  1. performance is identical for non-fragmented text messages (up to 16MB)
  2. performance is identical for non-fragmented binary messages (no size limit)

关于node.js - websocket实现的性能比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31564214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com