
Tooling
cProfile Slowed It 2.9x and Moved the Ranking by One Point
cProfile adds a flat 25 to 30 ns to every call it observes. That inflates a 47 ns function's reported time by 1.57x and a one-microsecond function's by nothing at all.
Python internals, measured · Elliot Sayer
Python, its runtimes, frameworks, and the systems beneath them — read from source, measured, not assumed.

Tooling
cProfile adds a flat 25 to 30 ns to every call it observes. That inflates a 47 ns function's reported time by 1.57x and a one-microsecond function's by nothing at all.

Runtime
Under a Latin-1 locale, CPython 3.13 reads a UTF-8 file as mojibake and raises nothing. 3.15 reads it correctly and raises on the Latin-1 file 3.13 read fine.

Tooling
Importing logging before asyncio moves 5.5 ms from asyncio's line to logging's. The program does the same work. The cumulative column charges whoever got there first.

Runtime
A lazy import of asyncio costs no measurable time and no modules at startup. Read the name once and 26.4 of the 26.8 ms come back. Deferral is not removal.

Runtime
On CPython 3.10 a NamedTuple attribute read cost 0.81x a read through an instance dictionary. On 3.11 it costs 1.90x. Nothing about NamedTuple changed.

Runtime
sys.getsizeof reports 296 bytes for a class's first instance dict and 96 once twenty-six exist. The instance itself costs 96 bytes and getsizeof says 48.
Browse
Four pillars. Every entry answers the question of exactly one of them.
What CPython does with the objects, modules and frames you hand it — object layout, the import system, the eval loop, memory behaviour.
What is actually parallel, and what the scheduling costs. Threads, the GIL, free threading, asyncio, subinterpreters and processes.
What the toolchain does at build, import or check time — import graphs, annotation resolution, profilers, benchmark harnesses, packaging.
Django, FastAPI and SQLAlchemy measured inside a real request rather than in the quickstart, counted in queries and milliseconds.
4 entries
What CPython actually does with the objects, modules and threads you hand it — measured on a real interpreter rather than argued from the docs.
2 entries
What an import costs, who gets charged for it, and what deferring it actually moves — measured on the interpreter that shipped the feature.
1 entry
Each entry breaks a tool the previous one used: what the profiler charges, what the benchmark harness turns off, and what the measurement allocates.