As always I'm interested in how ServiceStack holds up performance wise against alternatives out there. The reason I started using SS years ago was due to the performance wins over WCF and Web API at the time. Also the perf advantage in ServiceStack.Text over JSON.Net.
So I came across this and this article and wanted to know how ServiceStack holds up? What are your thoughts?
ServiceStack is a web framework that runs on top of a HTTP Host. It currently runs on ASP.NET and HttpListener self hosts. These benchmarks are measuring raw performance of .NET Core's Kestrel HTTP Host. Performance of HTTP on Mono has always been poor and the only way .NET is going to run well on Linux (where Tech Empower benchmarks are run) is to run on .NET Core (i.e not run on Mono) which is our priority to support in the future starting from last v4.0.62 release where we've released .NET Core builds for ServiceStack.Client and ServiceStack.Text, you can vote on this feature request to get notified of updates as we release support for .NET Core.
A new framework called "fastify" recently came out claiming some new performance improvements over other nodejs web frameworks and published a performance benchmarks repo. I added asp.net core 2.0, webapi and servicestack.core to the repo to do some benchmarks against asp.net core.
My results are posted here (ran using a MacBook Pro).
The servicestack raw handler perfoms pretty close to webapi, but the [Route] attribute and the [FallbackRoute] strategies don't measure up as well. The pure asp.net core ".map" and raw handler performance are impressive. WebApi is 1/2 as fast as that. ServiceStack varies depending on the strategy but generally slower. Open to feedback on how to re-structure the tests ... If you try to run these for yourself by cloning the repo, you'll have to go into the Startup class and comment/uncomment certain sections before running autocannon.
Thanks Matt, we'll investigate it, can you publish numbers for sync Services, to see if it's related to async overhead?
Updated the tests and included sync numbers, see here