# Performance

> Finding the slow thing, and the tools that show you where it hides.

11 guides.

- [What "Performance" Even Means](https://themissingmanual.dev/guides/what-performance-means) _(beginner)_ - Performance is two different numbers (latency and throughput), the rule that you measure before you optimize, and the truth that 'fast enough' is defined by a requirement and by what users actually feel.
- [Finding the Slow Thing (Profiling 101)](https://themissingmanual.dev/guides/profiling-101) _(intermediate)_ - A profiler watches your program run and tells you where the time actually goes, so you fix the real bottleneck instead of guessing. Learn to read a profile and a flame graph, then run the measure-change-remeasure loop.
- [Observability: Logs, Metrics & Traces](https://themissingmanual.dev/guides/observability-logs-metrics-traces) _(intermediate)_ - What observability actually is, how logs, metrics, and traces each see a different slice of your running system, and how to use all three together to find out why something is slow.
- [Reading Dynatrace (What It's Showing You)](https://themissingmanual.dev/guides/reading-dynatrace) _(intermediate)_ - What Dynatrace actually is, how to follow one request through a distributed trace, and how to read a 'Problem' and its proposed root cause without trusting it blindly.
- [Reading Graylog (Log Search & Streams)](https://themissingmanual.dev/guides/reading-graylog) _(intermediate)_ - What centralized logging actually is, how to search across dozens of servers from one box, and how streams, dashboards, and alerts turn a flood of logs into something you can stand on.
- [Prometheus & Grafana, Explained](https://themissingmanual.dev/guides/prometheus-and-grafana) _(intermediate)_ - Prometheus scrapes and stores your metrics; Grafana queries and draws them. What each one actually does, how to read a PromQL query, and how to build dashboards and alerts that don't lie to you.
- [Optimizing Real Systems](https://themissingmanual.dev/guides/optimizing-real-systems) _(advanced)_ - Putting measurement to work end to end: run a disciplined optimization loop against a target, learn where the time actually goes in real systems, and ship speed safely in production without breaking correctness.
- [Web Performance and Core Web Vitals](https://themissingmanual.dev/guides/web-performance-core-web-vitals) _(intermediate)_ - What actually makes a page feel fast: LCP, CLS, and INP, the Network tab and bundle size, and the fixes that move the numbers.
- [Lazy Loading Explained](https://themissingmanual.dev/guides/lazy-loading-explained) _(beginner)_ - Why deferring work until it's actually needed is one of the cheapest performance wins available, and where it stops paying off.
- [Memoization Explained](https://themissingmanual.dev/guides/memoization-explained) _(intermediate)_ - How caching a pure function's return value by its arguments lets you skip redoing the same expensive work twice, and where that trick quietly breaks.
- [Debouncing and Throttling](https://themissingmanual.dev/guides/debouncing-and-throttling) _(intermediate)_ - Two related techniques for taming a firehose of events - waiting for a pause versus capping the rate - and how to pick between them.
