The play test was written totally incorrectly since it used blocking database calls. Since play is really just a layer on top of Netty it should perform nearly as well if correctly written.
Here's the source: https://github.com/TechEmpower/FrameworkBenchmarks/blob/mast...
So the question stands: If Play & Netty are using the same JSON serialization code, why is Play seven times slower?