Web Framework Benchmarks

In case you are curious, a new benchmark appeared, and I was able to enter several F# frameworks for comparison. The benchmark is really simple at present, but I think their plans are to increase the complexity over time to show a more real-world use case than something like the TechEmpower benchmarks which are typically optimized for performance. The F# frameworks are holding their own pretty well, especially when compared with vanilla ASP.NET Core.

Also, I cannot seem to stop from chanting, “Go! Go! Go! Go!” silently to myself while reading through the list, particularly in this section.

I’m very interested in seeing what giraffe and saturn do when the EndpointRouting-based-handlers work merges in! One thing that’s unclear to me in these benchmarks is the gap between giraffe and saturn, as saturn’s own testing shows that it’s a very very small delta between them for common use cases:

25h|      Method | Categories |     Mean |   Error |  StdDev | Ratio | RatioSD |
25h|------------ |----------- |---------:|--------:|--------:|------:|--------:|
25h|   SaturnGet |        GET | 258.9 us | 5.04 us | 8.13 us |  0.99 |    0.03 |
25h|  GiraffeGet |        GET | 262.8 us | 5.21 us | 7.31 us |  1.00 |    0.00 |
25h|             |            |          |         |         |       |         |
25h|  SaturnGetf |       GETF | 290.3 us | 5.76 us | 6.86 us |  1.07 |    0.04 |
25h| GiraffeGetf |       GETF | 273.6 us | 5.30 us | 4.96 us |  1.00 |    0.00 |
25h|             |            |          |         |         |       |         |
25h|  SaturnPost |       POST | 270.1 us | 4.86 us | 5.60 us |  0.97 |    0.04 |
25h| GiraffePost |       POST | 280.3 us | 5.39 us | 7.38 us |  1.00 |    0.00 |