Performance
How Python runs, and what that means in practice.
Execution model
CPython interprets bytecode; 3.11 and later brought significant interpreter speed-ups, and an experimental JIT is being developed.
Memory
Reference counting plus a cyclic garbage collector; objects carry notable per-object overhead.
Concurrency
The GIL limits threads to one running Python bytecode at a time; use asyncio for I/O, multiprocessing for CPU. A free-threaded (no-GIL) build is available in recent versions.
In practice verify
Pure-Python CPU loops are among the slowest of the six; libraries written in C, C++ or Rust (NumPy, PyTorch, Polars) make real workloads fast.
Saved in this browser only. Part of From code to production (0/5).