-
-
Save nateberkopec/3639b2c07fc10883bb8ee6116517e7e4 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Module 1 - Principles | |
Who were Benford, Pareto, Zipf and Little? | |
Why is premature optimization bad? | |
What is benchmarking/profiling? | |
How to benchmark an HTTP service | |
How do I know how many servers I need to service a given load? | |
Little's Law | |
Exercise 1: Demonstrate Little's Law by benchmarking a demo application. | |
Module 2 - Benchmarking | |
Benchmark and benchmark/ips | |
What can you benchmark? | |
What's a good benchmark? | |
Pitfalls | |
Things to watch out for | |
Exercise 2: Benchmark a common feature in your application | |
Lunch break | |
Module 3 - Profiling CPU | |
Profiling in real time vs production | |
Why profiling isn't free | |
Profiling workflow (scientific method) | |
How profilers lie | |
Profiler modes | |
CPU time | |
Wall Time | |
Process time | |
Tracers | |
Samplers | |
How to use ruby-prof | |
Exercise 3: Profile a library. options: dalli, raven-ruby, hippie_csv. | |
Module 4 - Profiling Memory | |
Why we profile memory | |
How Ruby GC works in 5 minutes | |
The GC Module | |
Building your own profiler with ObjectSpace | |
More ObjectSpace tricks | |
What triggers GC? | |
Memory myth 1: memory goes down, right? | |
Heap fragmentation | |
GC tracing | |
derailed benchmarks and profiling startup | |
oink | |
Exercise 4: Let's profile your application! | |
Module 5 - Profiling the Web Request | |
rack-mini-profiler | |
Profiling in production-like environments | |
Auth with RMP | |
Understanding the speed badge | |
SQL | |
time | |
Outliers? | |
Flamegraphs | |
GC Profiler | |
Exception profiling | |
Exercise: profile a slow controller action with RMP | |
Module 6 - Application Metrics | |
Why it's fast on your machine | |
Development mode settings | |
Latency | |
Javascript | |
System config | |
Virtualization | |
What's "fast" for Rails | |
Applying the 80/20 rule | |
Exercise 6: A 10-minute introduction to profiling front-ends with Google Chrome DevTools | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment