{"id":241,"date":"2007-02-28T10:35:41","date_gmt":"2007-02-28T15:35:41","guid":{"rendered":"http:\/\/www.juixe.com\/techknow\/index.php\/2007\/02\/28\/rails-performance-link-fest\/"},"modified":"2007-02-28T10:35:41","modified_gmt":"2007-02-28T15:35:41","slug":"rails-performance-link-fest","status":"publish","type":"post","link":"http:\/\/juixe.com\/techknow\/index.php\/2007\/02\/28\/rails-performance-link-fest\/","title":{"rendered":"Rails Performance Link Fest"},"content":{"rendered":"<p>I have read most of the articles out there regarding <b>Rails performance<\/b>.  Performance-minded railers list fragment caching, normalize database design, proper use of indices, and the exclusion of unnecessary columns from large tables in active record models as providing a beneficial performance boost for any Rails application.  These railers also warn against excessive use of route url recognition and generation, eager loading, and slow application helpers.<\/p>\n<p>The following list is a collection of the best articles, blog posts, presentations and discussions on Rails performance.  Feel free to add any site that I might have missed in the comments!<\/p>\n<p><b>Rails Performance Tips<\/b><br \/>\n<a href=\"http:\/\/www.infoq.com\/articles\/Rails-Performance\">Common Performance Problems in Rails<\/a>  &#8211; Pros and con between SQLSessionStore and MemChacheStore session containers, tips on optimizing queries, and general information regarding how to avoid slow helpers.<br \/>\n<a href=\"http:\/\/poocs.net\/2006\/3\/13\/the-adventures-of-scaling-stage-1\">The Adventures of Scaling: Stage 1<\/a>, <a href=\"http:\/\/poocs.net\/2006\/3\/20\/the-adventures-of-scaling-stage-2\">Stage 2<\/a>, <a href=\"http:\/\/poocs.net\/2006\/3\/27\/the-adventures-of-scaling-stage-3\">Stage 3<\/a>, <a href=\"http:\/\/poocs.net\/2006\/4\/3\/the-adventures-of-scaling-stage-4\">Stage 4<\/a> &#8211; A detailed explanation a Rails production architecture.<br \/>\n<a href=\"http:\/\/weblog.textdrive.com\/article\/175\/rails-optimizing-resource-usage\">Optimizing Rails Resource Usage<\/a> &#8211; A short list of top Rails optimization tips, which include the proper use of caching.<br \/>\n<a href=\"http:\/\/www.railsexpress.de\/blog\/files\/slides\/rubyenrails2006.pdf\">Sustainable Performance with Ruby on Rails<\/a> &#8211; A 58 page PDF presentation describing  railsbench, caching, session performance, and efficient Ruby code.<br \/>\n<a href=\"http:\/\/blog.userstyles.org\/2007\/01\/20\/rails-performance-tips\/\">Rails performance tips<\/a> &#8211; A discussion on eager loading, excluding unnecessary columns, indexing database columns, and caching.<br \/>\n<a href=\"http:\/\/www.antoniocangiano.com\/articles\/2007\/02\/10\/top-10-ruby-on-rails-performance-tips\">Top 10 Ruby on Rails performance tips<\/a> &#8211; Provides great tips to optimize your ruby code and how to handle finders.<br \/>\n<a href=\"http:\/\/railsexpress.de\/blog\/articles\/2006\/04\/03\/performance-related-changes-in-rails-1-1\">Performance related changes in Rails 1.1<\/a> &#8211; Discussion of performance enhancements in rails 1.1.<br \/>\n<a href=\"http:\/\/clickablebliss.com\/blog\/2005\/12\/15\/rails_performance_and_caching\/\">Rails performance and caching<\/a>, <a href=\"http:\/\/clickablebliss.com\/blog\/2005\/12\/19\/rails_performance_and_caching_part_two\/\">Part 2<\/a> &#8211; A discussing of Rails performance using caching.<br \/>\n<a href=\"http:\/\/blog.nicksieger.com\/articles\/2006\/06\/23\/railsconf-stefan-kaes-performance\">Stefan Kaes &#8211; Rails Performance<\/a> &#8211; RubyConf 2006 conference notes on the Rails Performance presentation given by Stefan Kaes.<br \/>\n<a href=\"http:\/\/glu.ttono.us\/articles\/2006\/06\/23\/stefen-kaes-optimizing-rails\">Stefen Kaes &#8211; Optimizing Rails<\/a> &#8211; Another post on the Rails 2006 presentation by Stefan Kaes on Rails Performance.<br \/>\n<a href=\"http:\/\/kekova.ca\/articles\/2005\/10\/26\/rails-performance-fastcgi\">Rails performance with FastCGI and Apache<\/a> &#8211; A blog post on performance with Apache.<br \/>\n<a href=\"http:\/\/www.thoughtstoblog.com\/articles\/2006\/10\/24\/rails-performance-tool-box\">Rails Performance Tool Box<\/a> &#8211; A list of tools that come in handy when optimizing a Ruby on Rails application, which include query analyzer, query trace, and mtop.<br \/>\n<a href=\"http:\/\/rails.rubyonrails.com\/classes\/ActionController\/Caching.html\">Rails Caching Documentation<\/a> &#8211; Documentation for action, page, and fragment caching.<br \/>\n<a href=\"http:\/\/www.sitepoint.com\/blogs\/2006\/08\/21\/the-effect-of-using-rails-fragment-caching\/\">The effect of using Rails fragment caching<\/a> &#8211; Goes over the performance boost of using fragment caching.<\/p>\n<p><b>Rails Performance Tools<\/b><br \/>\n<a href=\"http:\/\/railsexpress.de\/blog\/articles\/2006\/09\/23\/new-plugin-query_builder\">Query Builder Plugin<\/a> &#8211; Bypass the overhead of construct_finder_sql.<br \/>\n<a href=\"http:\/\/blog.talbott.ws\/articles\/2006\/05\/17\/querytrace-my-first-official-rails-plugin\">QueryTrace Plugin<\/a> &#8211; Helps to identify the location\/caller of bad queries.<br \/>\n<a href=\"http:\/\/www.railtie.net\/articles\/2006\/09\/20\/mysql-query-analyzer-rails-plugin\"> MySQL Query Analyzer Rails Plugin<\/a> &#8211; Helpful to analyze SQL queries.<br \/>\n<a href=\"http:\/\/rubyforge.org\/projects\/rails-analyzer\/\">Rails Log Analyzer<\/a> &#8211; Reads the Rails log files and exposes potential points of optimization.<br \/>\n<a href=\"http:\/\/railsbench.rubyforge.org\/\">Railsbench<\/a> &#8211; &#8220;A small collection of ruby and shell scripts which make measuring raw performance of rails apps a snap.&#8221;<\/p>\n<p>Technorati Tags: <a href=\"http:\/\/technorati.com\/tag\/analyzer\" rel=\"tag\">analyzer<\/a>, <a href=\"http:\/\/technorati.com\/tag\/tools\" rel=\"tag\"> tools<\/a>, <a href=\"http:\/\/technorati.com\/tag\/rails\" rel=\"tag\"> rails<\/a>, <a href=\"http:\/\/technorati.com\/tag\/ruby\" rel=\"tag\"> ruby<\/a>, <a href=\"http:\/\/technorati.com\/tag\/webapp\" rel=\"tag\"> webapp<\/a>, <a href=\"http:\/\/technorati.com\/tag\/webdev\" rel=\"tag\"> webdev<\/a>, <a href=\"http:\/\/technorati.com\/tag\/web2.0\" rel=\"tag\"> web2.0<\/a>, <a href=\"http:\/\/technorati.com\/tag\/mysql\" rel=\"tag\"> mysql<\/a>, <a href=\"http:\/\/technorati.com\/tag\/innodb\" rel=\"tag\"> innodb<\/a>, <a href=\"http:\/\/technorati.com\/tag\/cacti\" rel=\"tag\"> cacti<\/a>, <a href=\"http:\/\/technorati.com\/tag\/memcache\" rel=\"tag\"> memcache<\/a>, <a href=\"http:\/\/technorati.com\/tag\/architecture\" rel=\"tag\"> architecture<\/a>, <a href=\"http:\/\/technorati.com\/tag\/optimize\" rel=\"tag\"> optimize<\/a>, <a href=\"http:\/\/technorati.com\/tag\/optimization\" rel=\"tag\"> optimization<\/a>, <a href=\"http:\/\/technorati.com\/tag\/railsbench\" rel=\"tag\"> railsbench<\/a>, <a href=\"http:\/\/technorati.com\/tag\/analyze\" rel=\"tag\"> analyze<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I have read most of the articles out there regarding Rails performance. Performance-minded railers list fragment caching, normalize database design, proper use of indices, and the exclusion of unnecessary columns from large tables in active record models as providing a beneficial performance boost for any Rails application. These railers also warn against excessive use of [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","footnotes":""},"categories":[19,22,3],"tags":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p902K-3T","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/juixe.com\/techknow\/index.php\/wp-json\/wp\/v2\/posts\/241"}],"collection":[{"href":"http:\/\/juixe.com\/techknow\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/juixe.com\/techknow\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/juixe.com\/techknow\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/juixe.com\/techknow\/index.php\/wp-json\/wp\/v2\/comments?post=241"}],"version-history":[{"count":0,"href":"http:\/\/juixe.com\/techknow\/index.php\/wp-json\/wp\/v2\/posts\/241\/revisions"}],"wp:attachment":[{"href":"http:\/\/juixe.com\/techknow\/index.php\/wp-json\/wp\/v2\/media?parent=241"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/juixe.com\/techknow\/index.php\/wp-json\/wp\/v2\/categories?post=241"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/juixe.com\/techknow\/index.php\/wp-json\/wp\/v2\/tags?post=241"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}