# Speedshop > Ruby on Rails performance consulting, scaling, and optimization. Request a page with `Accept: text/markdown` to receive Markdown instead of HTML. Explicit Markdown URLs also work without a special header: append `.md` to a page URL, use `/retainer.md`, or use `/blog/post/index.md`. ## Pages - [Homepage](https://www.speedshop.co/) - [Performance retainer](https://www.speedshop.co/retainer.html) - [Rails Performance Slack](https://www.speedshop.co/slack.html) ## Blog posts - [Organization for Transformative Works Performance Audit](https://www.speedshop.co/blog/performance-lessons-from-ao3/): A Rails performance audit report for the Organization for Transformative Works and Archive of Our Own. - [Announcing the Rails Performance Apocrypha](https://www.speedshop.co/blog/announcing-apocrypha/): I've written a new book, compiled from 4 years of my email newsletter. - [We Made Puma Faster With Sleep Sort](https://www.speedshop.co/blog/we-made-puma-faster-with-sleep-sort/): Puma 5 is a huge major release for the project. It brings several new experimental performance features, along with tons of bugfixes and features. Let's talk... - [The Practical Effects of the GVL on Scaling in Ruby](https://www.speedshop.co/blog/the-ruby-gvl-and-scaling/): MRI Ruby's Global VM Lock: frequently mislabeled, misunderstood and maligned. Does the GVL mean that Ruby has no concurrency story or CaN'T sCaLe? To underst... - [The World Follows Power Laws: Why Premature Optimization is Bad](https://www.speedshop.co/blog/why-premature-optimization-is-bad/): Programmers vaguely realize that 'premature optimization is bad'. But what is premature optimization? I'll argue that any optimization that does not come fro... - [Why Your Rails App is Slow: Lessons Learned from 3000+ Hours of Teaching](https://www.speedshop.co/blog/what-i-learned-teaching-rails-performance/): I've taught over 200 people at live workshops, worked with dozens of clients, and thousands of readers to make their Rails apps faster. What have I learned a... - [3 ActiveRecord Mistakes That Slow Down Rails Apps: Count, Where and Present](https://www.speedshop.co/blog/three-activerecord-mistakes/): Many Rails developers don't understand what causes ActiveRecord to actually execute a SQL query. Let's look at three common cases: misuse of the count method... - [The Complete Guide to Rails Performance, Version 2](https://www.speedshop.co/blog/rails-performance-version-two/): I've completed the 'second edition' of my course, the CGRP. What's changed since I released the course two years ago? Where do I see Rails going in the future? - [A New Ruby Application Server: NGINX Unit](https://www.speedshop.co/blog/nginx-unit-for-ruby/): NGINX Inc. has just released Ruby support for their new multi-language application server, NGINX Unit. What does this mean for Ruby web applications? Should ... - [Malloc Can Double Multi-threaded Ruby Program Memory Usage](https://www.speedshop.co/blog/malloc-doubles-ruby-memory/): Memory fragmentation is difficult to measure and diagnose, but it can also sometimes be very easy to fix. Let's look at one source of memory fragmentation in... - [Configuring Puma, Unicorn and Passenger for Maximum Efficiency](https://www.speedshop.co/blog/appserver/): Application server configuration can make a major impact on the throughput and performance-per-dollar of your Ruby web application. Let's talk about the most... - [Is Ruby Too Slow For Web-Scale?](https://www.speedshop.co/blog/is-ruby-too-slow-for-web-scale/): Choosing a new web framework or programming language for the web and wondering which to pick? Should performance enter your decision, or not? - [Railsconf 2017: The Performance Update](https://www.speedshop.co/blog/railsconf-2017-the-performance-update/): Did you miss Railsconf 2017? Or maybe you went, but wonder if you missed something on the performance front? Let me fill you in! - [Understanding Ruby GC through GC.stat](https://www.speedshop.co/blog/a-guide-to-gc-stat/): Have you ever wondered how the heck Ruby's GC works? Let's see what we can learn by reading some of the statistics it provides us in the GC.stat hash. - [Rubyconf 2016: The Performance Update](https://www.speedshop.co/blog/rubyconf-2016-performance-update/): What happened at RubyConf 2016 this year? A heck of a lot of stuff related to Ruby performance, that's what. - [What HTTP/2 Means for Ruby Developers](https://www.speedshop.co/blog/what-http2-means-for-ruby-developers/): Full HTTP/2 support for Ruby web frameworks is a long way off - but that doesn't mean you can't benefit from HTTP/2 today! - [How Changing WebFonts Made Rubygems.org 10x Faster](https://www.speedshop.co/blog/how-changing-webfonts-made-rubygems-10x-faster/): WebFonts are awesome and here to stay. However, if used improperly, they can also impose a huge performance penalty. In this post, I explain how Rubygems.org... - [Page Weight Doesn't Matter](https://www.speedshop.co/blog/page-weight-doesnt-matter/): The total size of a webpage, measured in bytes, has little to do with its load time. Instead, increase network utilization: make your site preloader-friendly... - [Hacking Your Webpage's Head Tags for Speed and Profit](https://www.speedshop.co/blog/hacking-head-tags-for-speed-and-profit/): One of the most important parts of any webpage's performance is the content and organization of the head element. We'll take a deep dive on some easy optimiz... - [How to Measure Ruby App Performance with New Relic](https://www.speedshop.co/blog/ruby-app-performance-with-new-relic/): New Relic is a great tool for getting the overview of the performance bottlenecks of a Ruby application. But it's pretty extensive - where do you start? What... - [Ludicrously Fast Page Loads - A Guide for Full-Stack Devs](https://www.speedshop.co/blog/frontend-performance-chrome-timeline/): Your website is slow, but the backend is fast. How do you diagnose performance issues on the frontend of your site? We'll discuss everything involved in cons... - [Action Cable - Friend or Foe?](https://www.speedshop.co/blog/action-cable/): Action Cable will be one of the main features of Rails 5, to be released sometime this winter. But what can Action Cable do for Rails developers? Are WebSock... - [rack-mini-profiler - the Secret Weapon of Ruby and Rails Speed](https://www.speedshop.co/blog/rack-mini-profiler-the-secret-weapon/): rack-mini-profiler is a powerful Swiss army knife for Rack app performance. Measure SQL queries, memory allocation and CPU time. - [Scaling Ruby Apps to 1000 Requests per Minute - A Beginner's Guide](https://www.speedshop.co/blog/scaling-ruby-apps-to-1000-rpm/): Most "scaling" resources for Ruby apps are written by companies with hundreds of requests per second. What about scaling for the rest of us? - [Make your Ruby or Rails App Faster on Heroku](https://www.speedshop.co/blog/secrets-to-speedy-ruby-apps-on-heroku/): Ruby apps in the memory-restrictive and randomly-routed Heroku environment don't have to be slow. Achieve under 100ms server response times with the tips lai... - [The Complete Guide to Rails Caching](https://www.speedshop.co/blog/the-complete-guide-to-rails-caching/): Caching in a Rails app is a little bit like that one friend you sometimes have around for dinner, but should really have around more often. - [How To Use Turbolinks to Make Fast Rails Apps](https://www.speedshop.co/blog/100-ms-to-glass-with-rails-and-turbolinks/): Is Rails dead? Can the old Ruby web framework no longer keep up in this age of "native-like" performance? Turbolinks provides one solution.