- Grape middleware
- MySQL DB
ab -n 2000 -c 20
- Java HotSpot(TM) 64-Bit Server VM (build 25.20-b22, mixed mode)
Percentage of the requests served within a certain time (ms) 50% 175 66% 203 75% 226 80% 246 90% 308 95% 371 98% 438 99% 480 100% 583 (longest request)
- Java HotSpot(TM) 64-Bit Server VM (build 25.20-b22, mixed mode)
Percentage of the requests served within a certain time (ms) 50% 207 66% 231 75% 247 80% 257 90% 288 95% 308 98% 343 99% 363 100% 467 (longest request)
- ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux]
Percentage of the requests served within a certain time (ms) 50% 30 66% 32 75% 34 80% 36 90% 40 95% 47 98% 80 99% 108 100% 298 (longest request)
- Java HotSpot(TM) 64-Bit Server VM (build 25.20-b22, mixed mode)
- No gem used, only jars (JDBC, DBCP)
- Pure Vert.x HTTP, no Rack adapter, no Grape
Percentage of the requests served within a certain time (ms) 50% 4 66% 6 75% 7 80% 8 90% 12 95% 17 98% 23 99% 27 100% 32 (longest request)
Implementations that perform the exact same SQL query and render the same JSON object as a result to the tested HTTP GET operation.
- Java HotSpot(TM) 64-Bit Server VM (build 25.20-b22, mixed mode)
- Using Yoke and Jersey middlewares (i.e. some overhead on plain Vert.x HTTP)
- Using Jackson JSON serializer
Percentage of the requests served within a certain time (ms) 50% 4 66% 5 75% 6 80% 7 90% 8 95% 9 98% 11 99% 13 100% 17 (longest request)
Hey I did some tests here, this what I found:
With Grape:
Same request, without Grape:
Looks like there is a performance issue with
activerecord-jdbcmysql-adapter
oractive_record
. I have seen people complaining about it for awhile. I'm still digging into it.