Python
Intermediate
What is Python Profiling?
Measuring where Python code spends time and memory to identify performance bottlenecks and optimization opportunities.
Python profilers help identify slow code paths. cProfile (built-in) records function call counts and cumulative times — run with python -m cProfile script.py. line_profiler provides line-by-line timing with @profile decorator. memory_profiler tracks memory usage per line. py-spy samples running processes without code modification. For web applications, Django Debug Toolbar and Flask-Profiler show per-request metrics. Key metrics include total time, cumulative time per function, call count, and memory allocation. Common bottlenecks include unnecessary database queries (N+1), inefficient loops (use vectorized operations), excessive object creation, and blocking I/O in async code.