{"id":48253,"date":"2013-06-12T11:58:47","date_gmt":"2013-06-12T08:58:47","guid":{"rendered":"https:\/\/www.altoros.com\/blog\/?p=48253"},"modified":"2021-09-20T22:19:33","modified_gmt":"2021-09-20T19:19:33","slug":"simple-fast-application-sinatra-espresso-padrino-goliath-rails","status":"publish","type":"post","link":"https:\/\/www.altoros.com\/blog\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\/","title":{"rendered":"A Simple and a Fast App: Sinatra, Espresso, Padrino, Goliath, and Ruby on Rails"},"content":{"rendered":"<p>There is a number of Ruby frameworks that allow for creating amazing feature-rich applications. However, very often you need some simple functionality, and your main goal is to ensure the fastest performance possible. I decided to compare performance of the basic applications that were created with <i>Sinatra<\/i>, <i>Espresso<\/i>, <i>Padrino<\/i>, <i>Goliath<\/i>, and <i>Ruby on Rails<\/i> to find out which framework is the fastest one.<\/p>\n<p>For the comparison, I used ApacheBench 2.3 <code style=\"color: black; background-color: #e6e6e6;\">ab -n 1000 -c 100 localhost<\/code>, CPU 2.53 GHz Intel Core 2 Duo, RAM 8 GB 1333 MHz DDR3, OS X 10.8.4, ruby 2.0.0p0, MySQL 5.6.10 in the development environment. The only parameter in all the tables is the amount of requests per second (r\/s).<\/p>\n<p>&nbsp;<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.altoros.com\/blog\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\/#Sinatra_143\" >Sinatra 1.4.3<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.altoros.com\/blog\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\/#Espresso_048\" >Espresso 0.4.8<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.altoros.com\/blog\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\/#Padrino_0112\" >Padrino 0.11.2<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.altoros.com\/blog\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\/#Goliath_102\" >Goliath 1.0.2<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.altoros.com\/blog\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\/#Rails_400rc1\" >Rails 4.0.0.rc1<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.altoros.com\/blog\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\/#Further_reading\" >Further reading<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"Sinatra_143\"><\/span>Sinatra 1.4.3<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Interesting facts. When I used stubbed &#8220;Hello World!&#8221; in <code style=\"color: black; background-color: #e6e6e6;\">index.haml<\/code>, I got performance decrease for 5 r\/s. WEBrick produced an interesting result when I used views and database. It was faster with MySQL then without for 8 r\/s. I also got performance decrease when I wrapped the application in <code style=\"color: black; background-color: #e6e6e6;\">class App &lt; Sinatra::Application<\/code> and added <code style=\"color: black; background-color: #e6e6e6;\">config.ru<\/code> with <code style=\"color: black; background-color: #e6e6e6;\">run App.new<\/code> for Unicorn.<\/p>\n<p><small><\/p>\n<table style=\"width:100%\">\n<tr style=\"background-color:#898f98;color:white;\">\n<th>Web Server<\/th>\n<th>No views and DB<\/th>\n<th>Views (slim)<\/th>\n<th>Views (slim) + MySQL (sequel)<\/th>\n<\/tr>\n<tr>\n<td>WEBrick 1.3.1<\/td>\n<td>330<\/td>\n<td>119<\/td>\n<td>126<\/td>\n<\/tr>\n<tr>\n<td>Thin 1.5.1<\/td>\n<td>980<\/td>\n<td>146<\/td>\n<td>133<\/td>\n<\/tr>\n<tr>\n<td>Unicorn 4.6.2<\/td>\n<td>645<\/td>\n<td>122<\/td>\n<td>95<\/td>\n<\/tr>\n<\/table>\n<p><\/small><\/p>\n<p>After adding <code style=\"color: black; background-color: #e6e6e6;\">config.ru<\/code>, Thin started to work slower on 200r\/s. It\u2019s not just an inaccuracy, because I have checked all the controversial results multiple times and got pretty stable speeds. So, you should be extremely careful when you write a high-load application, because any small change can slow down it and run benchmark tests on the web server that you are going to use in production.<\/p>\n<p>Since Thin showed the best results, all my next tests I\u2019ll do with only this web server and try to keep my application as simple as possible.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Espresso_048\"><\/span>Espresso 0.4.8<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Now you can see that Espresso is incredibly faster than Sinatra, and we also got one more proof that just using views can significantly change your application speed to worth.<\/p>\n<p><small><\/p>\n<table style=\"width:100%\">\n<tr style=\"background-color:#898f98;color:white;\">\n<th>No views and DB<\/th>\n<th>Views (slim)<\/th>\n<th>MySQL (sequel)<\/th>\n<th>Views (slim) + MySQL (sequel)<\/th>\n<\/tr>\n<tr>\n<td>2626<\/td>\n<td>2016<\/td>\n<td>1517<\/td>\n<td>1172<\/td>\n<\/tr>\n<\/table>\n<p><\/small><\/p>\n<p>However, in case of Espresso, database usage decreased performance more than views. Always remember about caching popular data in memory.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Padrino_0112\"><\/span>Padrino 0.11.2<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Despite Padrino is built on Sinatra and provides a lot of helpful stuff similar to Rails, performance is still close to a clean Sinatra application. This fact cannot be but a source of joy.<\/p>\n<p><small><\/p>\n<table style=\"width:100%\">\n<tr style=\"background-color:#898f98;color:white;\">\n<th>Cache<\/th>\n<th>No views and DB<\/th>\n<th>Views (slim)<\/th>\n<th>MySQL (sequel)<\/th>\n<th>Views (slim) + MySQL (sequel)<\/th>\n<\/tr>\n<tr>\n<td>No cache<\/td>\n<td>825<\/td>\n<td>113<\/td>\n<td>545<\/td>\n<td>92<\/td>\n<\/tr>\n<tr>\n<td>Memory<\/td>\n<td>1050<\/td>\n<td>207<\/td>\n<td>745<\/td>\n<td>112<\/td>\n<\/tr>\n<\/table>\n<p><\/small><\/p>\n<p>Before I ran all the tests using global layout plus layout for action. However, for the last test, I made an exception and checked without global layout. I got 167 r\/s instead of 92 r\/s. It\u2019s even more than the result without database. The same result I got with caching, but, in this case, it was less than the result without database. So, when you make a high-load application and have to use views, try to avoid using global layouts if it\u2019s possible.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Goliath_102\"><\/span>Goliath 1.0.2<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Goliath results looks a bit strange for me, because I thought that this framework is the fastest thanks to the HTTP server of its own.<\/p>\n<p><small><\/p>\n<table style=\"width:100%\">\n<tr style=\"background-color:#898f98;color:white;\">\n<th>No views and DB<\/th>\n<th>Views (slim)<\/th>\n<th>MySQL (sequel)<\/th>\n<th>Views (slim) + MySQL (sequel)<\/th>\n<\/tr>\n<tr>\n<td>399<\/td>\n<td>109<\/td>\n<td>261<\/td>\n<td>84<\/td>\n<\/tr>\n<\/table>\n<p><\/small><\/p>\n<p>Please don\u2019t hesitate to blame my results and propose your version of benchmark testing.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Rails_400rc1\"><\/span>Rails 4.0.0.rc1<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>I enabled caching classes in <code style=\"color: black; background-color: #e6e6e6;\">development.rb<\/code>, as well as disabled sessions and protection from forgery for these tests.<\/p>\n<p><small><\/p>\n<table style=\"width:100%\">\n<tr style=\"background-color:#898f98;color:white;\">\n<th>No views and DB<\/th>\n<th>Views (slim)<\/th>\n<th>MySQL (sequel)<\/th>\n<th>Views (slim) + MySQL (sequel)<\/th>\n<\/tr>\n<tr>\n<td>461<\/td>\n<td>398<\/td>\n<td>316<\/td>\n<td>292<\/td>\n<\/tr>\n<\/table>\n<p><\/small><\/p>\n<p>I used Sequel instead of ActiveRecord to make results more fair. You can see that results are close to Goliath\u2019s, but little bit better.<\/p>\n<p>You can make sure all <a href=\"https:\/\/github.com\/melnikaite\/ruby-frameworks-comparison\/branches\">applications<\/a> I made were really similar, and tests are not taken from ceil. Hope it helped you to choose the right framework.<\/p>\n<p>You can also check out the <a href=\"https:\/\/www.altoros.com\/blog\/performance-comparison-of-ruby-frameworks-sinatra-padrino-goliath-and-ruby-on-rails\/\">updated version<\/a> of this comparison.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Further_reading\"><\/span>Further reading<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/performance-comparison-of-ruby-frameworks-app-servers-template-engines-and-orms-2016\/\">Performance Comparison of Ruby Frameworks 2016<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/research-papers\/performance-comparison-of-ruby-frameworks-app-servers-template-engines-and-orms\/\">Performance Comparison of Ruby Frameworks, App Servers, Template Engines, and ORMs<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/research-papers\/performance-comparison-of-ruby-frameworks-goliath-ruby-on-rails-sinatra-padrino-and-espresso\/\">Performance Comparison of Ruby Frameworks: Goliath, Ruby on Rails, Sinatra, Padrino, and Espresso<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Benchmark comparison of ruby frameworks<\/p>\n","protected":false},"author":62,"featured_media":63585,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":"","_links_to":"","_links_to_target":""},"categories":[214],"tags":[1000,895],"class_list":["post-48253","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-github","tag-research-and-development"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>A Simple and a Fast App: Sinatra, Espresso, Padrino, Goliath, and Ruby on Rails | Altoros<\/title>\n<meta name=\"description\" content=\"This blog post shares the results of comparing five popular Ruby frameworks across the amount of requests made per second.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.altoros.com\/blog\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A Simple and a Fast App: Sinatra, Espresso, Padrino, Goliath, and Ruby on Rails | Altoros\" \/>\n<meta property=\"og:description\" content=\"Benchmark comparison of ruby frameworks\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.altoros.com\/blog\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\/\" \/>\n<meta property=\"og:site_name\" content=\"Altoros\" \/>\n<meta property=\"article:published_time\" content=\"2013-06-12T08:58:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-09-20T19:19:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2013\/06\/A-Simple-and-a-Fast-App-Sinatra-Espresso-Padrino-Goliath-and-Ruby-on-Rails.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"576\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Eugene Melnikov\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Eugene Melnikov\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\\\/\"},\"author\":{\"name\":\"Eugene Melnikov\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/#\\\/schema\\\/person\\\/2347aafc28e3658aea99b1b6671f7b70\"},\"headline\":\"A Simple and a Fast App: Sinatra, Espresso, Padrino, Goliath, and Ruby on Rails\",\"datePublished\":\"2013-06-12T08:58:47+00:00\",\"dateModified\":\"2021-09-20T19:19:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\\\/\"},\"wordCount\":664,\"commentCount\":2,\"image\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2013\\\/06\\\/A-Simple-and-a-Fast-App-Sinatra-Espresso-Padrino-Goliath-and-Ruby-on-Rails.png\",\"keywords\":[\"GitHub\",\"Research and Development\"],\"articleSection\":[\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.altoros.com\\\/blog\\\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\\\/\",\"url\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\\\/\",\"name\":\"A Simple and a Fast App: Sinatra, Espresso, Padrino, Goliath, and Ruby on Rails | Altoros\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2013\\\/06\\\/A-Simple-and-a-Fast-App-Sinatra-Espresso-Padrino-Goliath-and-Ruby-on-Rails.png\",\"datePublished\":\"2013-06-12T08:58:47+00:00\",\"dateModified\":\"2021-09-20T19:19:33+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/#\\\/schema\\\/person\\\/2347aafc28e3658aea99b1b6671f7b70\"},\"description\":\"Benchmark comparison of ruby frameworks\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.altoros.com\\\/blog\\\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2013\\\/06\\\/A-Simple-and-a-Fast-App-Sinatra-Espresso-Padrino-Goliath-and-Ruby-on-Rails.png\",\"contentUrl\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2013\\\/06\\\/A-Simple-and-a-Fast-App-Sinatra-Espresso-Padrino-Goliath-and-Ruby-on-Rails.png\",\"width\":1024,\"height\":576},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A Simple and a Fast App: Sinatra, Espresso, Padrino, Goliath, and Ruby on Rails\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/\",\"name\":\"Altoros\",\"description\":\"Insight\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/#\\\/schema\\\/person\\\/2347aafc28e3658aea99b1b6671f7b70\",\"name\":\"Eugene Melnikov\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/03\\\/melnikov-96x96.jpg\",\"url\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/03\\\/melnikov-96x96.jpg\",\"contentUrl\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/03\\\/melnikov-96x96.jpg\",\"caption\":\"Eugene Melnikov\"},\"description\":\"Eugene Melnikov is a senior software engineer at Altoros. He mainly specializes in Ruby and Ruby-based frameworks, as well as in JavaScript development, including Node.js, jQuery, and AngularJS. Working at Altoros, Eugene has also designed and implemented a variety of SQL and NoSQL database solutions. He recently became engaged in creating data-driven software for IoT applications. Check out Eugene's GitHub profile.\",\"url\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/author\\\/eugene-melnikov\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"A Simple and a Fast App: Sinatra, Espresso, Padrino, Goliath, and Ruby on Rails | Altoros","description":"This blog post shares the results of comparing five popular Ruby frameworks across the amount of requests made per second.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.altoros.com\/blog\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\/","og_locale":"en_US","og_type":"article","og_title":"A Simple and a Fast App: Sinatra, Espresso, Padrino, Goliath, and Ruby on Rails | Altoros","og_description":"Benchmark comparison of ruby frameworks","og_url":"https:\/\/www.altoros.com\/blog\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\/","og_site_name":"Altoros","article_published_time":"2013-06-12T08:58:47+00:00","article_modified_time":"2021-09-20T19:19:33+00:00","og_image":[{"width":1024,"height":576,"url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2013\/06\/A-Simple-and-a-Fast-App-Sinatra-Espresso-Padrino-Goliath-and-Ruby-on-Rails.png","type":"image\/png"}],"author":"Eugene Melnikov","twitter_misc":{"Written by":"Eugene Melnikov","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.altoros.com\/blog\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\/#article","isPartOf":{"@id":"https:\/\/www.altoros.com\/blog\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\/"},"author":{"name":"Eugene Melnikov","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/2347aafc28e3658aea99b1b6671f7b70"},"headline":"A Simple and a Fast App: Sinatra, Espresso, Padrino, Goliath, and Ruby on Rails","datePublished":"2013-06-12T08:58:47+00:00","dateModified":"2021-09-20T19:19:33+00:00","mainEntityOfPage":{"@id":"https:\/\/www.altoros.com\/blog\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\/"},"wordCount":664,"commentCount":2,"image":{"@id":"https:\/\/www.altoros.com\/blog\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\/#primaryimage"},"thumbnailUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2013\/06\/A-Simple-and-a-Fast-App-Sinatra-Espresso-Padrino-Goliath-and-Ruby-on-Rails.png","keywords":["GitHub","Research and Development"],"articleSection":["Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.altoros.com\/blog\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.altoros.com\/blog\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\/","url":"https:\/\/www.altoros.com\/blog\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\/","name":"A Simple and a Fast App: Sinatra, Espresso, Padrino, Goliath, and Ruby on Rails | Altoros","isPartOf":{"@id":"https:\/\/www.altoros.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.altoros.com\/blog\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\/#primaryimage"},"image":{"@id":"https:\/\/www.altoros.com\/blog\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\/#primaryimage"},"thumbnailUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2013\/06\/A-Simple-and-a-Fast-App-Sinatra-Espresso-Padrino-Goliath-and-Ruby-on-Rails.png","datePublished":"2013-06-12T08:58:47+00:00","dateModified":"2021-09-20T19:19:33+00:00","author":{"@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/2347aafc28e3658aea99b1b6671f7b70"},"description":"Benchmark comparison of ruby frameworks","breadcrumb":{"@id":"https:\/\/www.altoros.com\/blog\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.altoros.com\/blog\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\/#primaryimage","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2013\/06\/A-Simple-and-a-Fast-App-Sinatra-Espresso-Padrino-Goliath-and-Ruby-on-Rails.png","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2013\/06\/A-Simple-and-a-Fast-App-Sinatra-Espresso-Padrino-Goliath-and-Ruby-on-Rails.png","width":1024,"height":576},{"@type":"BreadcrumbList","@id":"https:\/\/www.altoros.com\/blog\/simple-fast-application-sinatra-espresso-padrino-goliath-rails\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.altoros.com\/blog\/"},{"@type":"ListItem","position":2,"name":"A Simple and a Fast App: Sinatra, Espresso, Padrino, Goliath, and Ruby on Rails"}]},{"@type":"WebSite","@id":"https:\/\/www.altoros.com\/blog\/#website","url":"https:\/\/www.altoros.com\/blog\/","name":"Altoros","description":"Insight","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.altoros.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/2347aafc28e3658aea99b1b6671f7b70","name":"Eugene Melnikov","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2020\/03\/melnikov-96x96.jpg","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2020\/03\/melnikov-96x96.jpg","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2020\/03\/melnikov-96x96.jpg","caption":"Eugene Melnikov"},"description":"Eugene Melnikov is a senior software engineer at Altoros. He mainly specializes in Ruby and Ruby-based frameworks, as well as in JavaScript development, including Node.js, jQuery, and AngularJS. Working at Altoros, Eugene has also designed and implemented a variety of SQL and NoSQL database solutions. He recently became engaged in creating data-driven software for IoT applications. Check out Eugene's GitHub profile.","url":"https:\/\/www.altoros.com\/blog\/author\/eugene-melnikov\/"}]}},"_links":{"self":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/48253","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/users\/62"}],"replies":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/comments?post=48253"}],"version-history":[{"count":21,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/48253\/revisions"}],"predecessor-version":[{"id":63586,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/48253\/revisions\/63586"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media\/63585"}],"wp:attachment":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media?parent=48253"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/categories?post=48253"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/tags?post=48253"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}