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.