Get the latest tech news

Performance of the Python 3.14 tail-call interpreter


A deep dive into the performance of Python 3.14's tail-call interpreter: How the performance results were confounded by an LLVM regression, the surprising complexity of compiling interpreter loops, and some reflections on performance work, software engineering, and optimizing compilers.

I became curious – and perhaps slightly obsessed – and the reports in this post are the result of a few weeks of off-and-on compiling and benchmarking and disassembly of dozens of different Python binaries, in an attempt to understand what I was seeing. These expectations are in tension, and we have a dearth of patterns and idioms to explain to the compiler “why” we wrote code in various ways, and whether we were deliberately trying to trigger a certain output, or make a certain performance-related decision, or not. In addition, Nix is incredibly extensible and customizable, but figuring out how to make a specific customization can be a real uphill battle, and involve a lot of trial and error and source-diving.

Get the Android app

Or read this on Hacker News

Read more on:

Photo of Performance

Performance

Photo of python

python

Photo of interpreter

interpreter

Related news:

News photo

Contrasting a BYD Blade prismatic cell and Tesla 4680 cylindrical cell with a teardown analysis of design and performance

News photo

The features of Python's help() function

News photo

Mistral releases new optical character recognition (OCR) API claiming top performance globally