asp.net 核心 SignalR 性能 - 发送给每个客户端与发送给所有客户端

asp.net core SignalR performance - send to each client vs send to all

我找不到任何 SignalR 性能文档。而且我不知道如何进行 1000 个用户测试。

我的问题是:如果有 1000 个客户端 - 发送给每个客户端与发送给所有客户端的性能有何不同:

for(int i = 0; i < 100; i++)
  hub.Clients.Client(connected[i]).SendAsync..

vs.

hub.Clients.All.SendAsync..

在 MS 发布 SignalR 性能文章之前,我将使用 for 循环而不是 All。由于我的任务是通过发送循环与全部发送来确保没有性能损失 - 我测量了循环并发现它的性能足够好。 IE。它非常快,没有必要牺牲业务逻辑以使其更快,同时阅读 All 的源代码它似乎循环会更快,因为他们使用 foreach.

测量 在单个线程中使用 for 向同一客户端发送消息 1000 次显示在 Ryzen 9 3900XT 上显示 56ms

一旦 MS 文档发布,我将重新评估它。