yeah, see the other threads..
the benchmark is low concurrency (256) - the top frameworks doesn’t use the DB pool - eg 256 db connections and 256 keepalive clients..
so these frameworks does 256 db conn checkouts for the entire benchmark - the code is weird - and some of them have like 50-60 queries per request - ecto/phoenix does individual checkouts per query - so phoenix does thousands and thousands of db conn checkouts..
the benchmark setup is not real world production - from anything I know about or have ever heard about running in production like this.
also these tests are usually heavy on json serialization - does phoenix use the newer faster Jason - or even native jiffy? (the ruby json serializer is written in c - most likely also the .net one etc.)
ecto 3.0 should be getting the possibility for explicit checkout of the db conn - which will be beneficial for these benchmarks and for query heavy real world endpoints(real world: I do 8-10 db queries on channel join in my app - holding the conn might be beneficial).
using the jason json serializer should also 2x-ish the json part of the benchmark..
honestly, you should not use or give any value to the techempower benchmarks..






















