我找不到任何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
。因为我的任务是确保在发送循环vs All时没有性能损失——我测量了循环,发现它的性能足够好。也就是说,它非常快,没有必要为了让它更快而妥协业务逻辑,也可以阅读All
的源代码,因为他们使用foreach
,似乎循环会更快。
测量在单个线程中使用for
向同一客户端发送消息1000次显示56ms在Ryzen 93900xt上
一旦MS文档发布,我将重新评估这一点。