Lesson 232
Performance Engineering
Measure · find the bottleneck · optimize
1:00A discipline for making real systems fast — profile first, find the bottleneck, then fix it the right way.
By the end, you can
- Explain why profiling must precede any optimization attempt.
- Apply Amdahl's Law to compute the maximum speedup ceiling and explain the "small-slice trap" — optimizing a section that is only a small fraction of total runtime yields negligible overall gain, no matter how much it is sped up.
- Distinguish latency from throughput and describe how they trade off under load.
- Define p99 tail latency and explain why averages hide the slow tail.
- Read a flame graph and identify the hotspot by width.
- Classify a bottleneck as CPU-bound, memory-bound, or I/O-bound from observable symptoms and prescribe the appropriate fix.
- Explain the difference between Array of Structs and Struct of Arrays and predict which layout is more cache-friendly for a field-scan loop.
- Describe false sharing and explain how padding eliminates it.
- Identify the three classic benchmarking traps and the practice that avoids each.
- Distinguish constant-factor from algorithmic speedups and decide which to pursue first for a given workload size.
- Quote Knuth's warning correctly and explain the role profiling plays in respecting it.
- Execute the four-step performance loop: profile, find the bottleneck, fix it, re-measure.
Up next in Graphics, DevOps & Cloud Systems




