optimization-patternsUse when optimizing performance, implementing caching, fixing N+1 queries, improving database queries, adding indexes, reducing latency, choosing a data structure, deciding whether to optimize at all, or reviewing code for performance anti-patterns. Covers caching strategies and the cache hierarchy,
profiling-guideUse when profiling application performance, reading a flame graph, benchmarking code, identifying bottlenecks, measuring CPU usage, analyzing memory allocation, or profiling I/O and database queries. Covers profiling methodology, cProfile and how to interpret its output, py-spy sampling, line-level