dotnet / aspnetcore

ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.
https://asp.net
MIT License
35.59k stars 10.06k forks source link

[Blazor] Add server interactivity benchmarks #54452

Open MackinnonBuck opened 8 months ago

MackinnonBuck commented 8 months ago

We should add benchmarks that track server interactivity performance metrics, especially as it relates to traffic over the websocket connection. We would be primarily interested in latency and the total number of bytes transferred across the connection.

Here are some scenarios we could consider:

alxgda commented 8 months ago

Yes please! As a newcomer on Blazor, comparing the different options that use a similar method (Phoenix LiveView...), it is difficult to know if I can rely on server interactivity for a public facing web app that may be used by a decent amount of users. Phoenix LiveView is already used successfully on a few known websites (cars.com, fly.io...) so we have the hard data, but there is nothing on the Microsoft Blazor side. On Reddit and forum, the talk about the scale of the feature always end up with something like "you should use it for internal apps only" or "I wouldn't trust it for lot of users", and it was also for Blazor before .Net 8. We need hard data and more communication from Microsoft on that scale aspect to be confident in our choice as technical decision makers, and to have more informed discussions on the internet. Sure, we could do it ourself or wait for a third-party to do the benchmarks, but to be fair, we are not quite used to this pattern of apps (persistent web sockets) and how to optimize it, so we don't feed confident that our numbers would be meaningful. Thank you!