TechEmpower/FrameworkBenchmarks — pull request #633 by bbrowning (2013-11-27 19:36:33+00:00)
Title: Fix the Sinatra tests to more closely resemble production settings

This commit makes 3 changes to the Sinatra application that more
closely resembles what someone would use in production (if throughput
is a concern) and should improve performance on both JRuby and Ruby.

* We disable Sinatra's static file serving so it doesn't waste time on
each request looking for static files, since we have none. In
production this is usually handled by a frontend server anyway.

* We specify which JSON encoder to use so that sinatra/json doesn't
try several options on each request until it finds one it can use.

* We disable the per-request connection pooling in
sinatra/activerecord and instead use ActiveRecord's with_connection to
explicitly control connections. The default behavior is overly
simplistic and incurs expensive synchronized method calls on every
request, even if the request doesn't touch the database.

This change makes the non-database routes several times faster, and
should improve the performance of the database route a bit less.