Performance Comparison of Ruby Frameworks, App Servers, Template Engines, and ORMs

This paper evaluates the performance of 6 most popular Ruby frameworks, 6 template engines, 5 Rack application servers, and 3 ORM tools. The Ruby frameworks are also compared to a number of non-Ruby technologies.
Why read this?

From this 15-page benchmark, you will learn how the most popular Ruby frameworks and tools perform as basic solutions with default settings:

  • Ruby frameworks: Grape, Hanami, Padrino, Rack, Ruby on Rails, and Sinatra
  • Ruby template engines: ERB, Erubis, Haml, Liquid, Mustache, and Slim
  • Rack application servers: Phusion Passenger, Puma, Rhebok, Thin, and Unicorn
  • Ruby ORM tools: Active Record, Sequel, and Mongoid
  • non-Ruby languages / frameworks: Crystal, Python, Elixir, Go, Java, Express, Meteor, Phoenix, Spring, etc.

The only optimizations applied are an activated production mode and disabled logging to ensure equal conditions.

The performance of the technologies was measured while they were executing the following tasks:

  • Languages. Print a “Hello, World!” message.
  • Frameworks. Generate a “Hello, World!” web page.
  • Template engines. Render a template with one variable.
  • Application servers. Run successively five simple apps that carry out one action each, such as using database records, showing environment variables, or just sleeping for a second.
  • ORMs. Do different database operations—for example, loading all records with associations, selecting a fragment of a saved JSON object, and updating JSON.