Performance engineering sits at the intersection of software development and system reliability, where milliseconds determine user satisfaction and system resource consumption directly impacts business costs. Unlike reactive debugging, performance engineering embeds optimization into the development lifecycle through rigorous measurement, profiling, and load testing. The discipline spans three fundamental domains: understanding how code executes (profiling), validating how systems behave under load (load testing), and ensuring production systems meet performance contracts (monitoring). Mastering performance engineering means recognizing that optimization without measurement is guesswork, and that the bottleneck you assume is rarely the bottleneck you measure.
What This Cheat Sheet Covers
This topic spans 25 focused tables and 188 indexed concepts, 169 flashcards. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.
A jump-to index of every table row in this cheat sheet.
An interactive map of every table and concept in this topic.
Table 1: Load Testing Methodologies
Every load test answers a different question — and reaching for the wrong one wastes the run. Stress and breakpoint tests hunt for where the system snaps, soak tests expose the slow leaks that only surface after hours of traffic, and spike tests check whether auto-scaling can react before users notice. Knowing which methodology maps to your worry is half the battle before you ever write a script.
| Type | Example | Description | |
|---|---|---|---|
k6 run --vus 100 --duration 5m script.js | Tests system behavior under expected concurrent user load to validate performance meets requirements before production deployment | ||
JMeter -n -t plan.jmx -Jusers=5000 | • Pushes system beyond normal capacity to identify breaking points and failure modes • reveals maximum throughput threshold | ||
gatling.sh -s SpikeSimulation | • Validates system response to sudden traffic surges (e.g., flash sales) • tests auto-scaling reaction time and queue handling | ||
k6 run --vus 50 --duration 24h endurance.js | Runs sustained load over extended periods (hours/days) to detect memory leaks, resource exhaustion, and gradual degradation | ||
k6 run --vus 1 --duration 1m minimal.js | Minimal load test with 1-2 virtual users to verify basic functionality and test script correctness before full load runs | ||
Gatling ramp users from 1 to failure | Gradually increases load until system fails to determine maximum capacity and identify at what point performance degrades | ||
Test with 10M database records | • Validates system behavior with large data volumes independent of user load • tests database query performance at scale | ||
Compare 2 vs 4 vs 8 server nodes | • Measures how effectively system performance improves with added resources • validates horizontal/vertical scaling efficiency |