Move Slow and Improve Things: Performance Improvement in a Rails App #
Boulder Ruby Group Monthly Meetup @Recurly Offices, Feb 13, 2018
Slides are available here on Dropbox
Git Push, Git Paid #
Here’s the “Git Push, Git Paid” t-shirt I mentioned:
Thoughtbot designed these, and it looks like they’re still available for purchase on CottonBureau for $28.
Slow Query lookup: #
check to see what your current values are for long_query_time
SELECT
start_time
,user_host
,query_time
,sql_text
,lock_time
,rows_sent
,rows_examined
,db
,last_insert_id
,insert_id
,server_id
,thread_id
FROM
mysql.slow_log
WHERE
start_time >= DATE_ADD(current_timestamp, INTERVAL -1 DAY)
ORDER BY
query_time DESC
LIMIT 10000;
What is Benchmarking and Profiling #
Profiling and benchmarking are flip sides of the same coin, profiling helps you to narrow down to where optimization would be most useful, benchmarking allows you to easily isolate optimizations and cross-compare them.
Additional reading #
- rack-mini-profiler docs
- 3 ActiveRecord Mistakes That Slow Down Rails Apps: Count, Where and Present (Nate Berkopec)
- Nate Berkopec’s The Complete Guide to Rails Performance
- The Website Obesity Crisis (Maciej Cegłowski)
I’ll be working on this Rails performance piece for a while, so if you’d like to see what else I’m learning, pop your email in below.
Full disclosure: sometimes I write about things other than Ruby on Rails.