PLAY PODCASTS
Benchmarking Python 3.14 & Enabling Asyncio to Scale
Episode 271

Benchmarking Python 3.14 & Enabling Asyncio to Scale

The Real Python Podcast · Real Python

October 24, 202547m 24s

Audio is streamed directly from the publisher (dts.podtrac.com) as published in their RSS feed. Play Podcasts does not host this file. Rights-holders can request removal through the copyright & takedown page.

Show Notes

<p>How does Python 3.14 perform under a few hand-crafted benchmarks? Does the performance of asyncio scale on the free-threaded build? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder&rsquo;s Weekly articles and projects.</p> <p>At the top of the show, we have a mountain of release news and Python Enhancement Proposals to cover. Then, we dig into a couple of articles covering the performance of Python 3.14. The first is a benchmarking comparison of the last several Python versions and their variations, including JIT and free-threaded mode. The second explores the changes in 3.14 that enable <code>asyncio</code> to scale on CPython&rsquo;s free-threaded build.</p> <p>We also share several other articles and projects from the Python community, including an introduction to NiceGUI, a free-threaded Python library compatibility checker, an exploration of what is &ldquo;good taste&rdquo; in software engineering, HTML templating with t‑strings, and a tool for testing Sphinx docs instantly in the browser.</p> <div class="alert alert-primary" role="alert"> <p><strong>Course Spotlight:</strong> <a href="https://realpython.com/courses/python-sphinx/">Documenting Python Projects With Sphinx and Read the Docs</a></p> <p>In this video series, you&rsquo;ll create project documentation from scratch using Sphinx, the de facto standard for Python. You&rsquo;ll also hook your code repository up to Read the Docs to automatically build and publish your code documentation.</p> </div> <p>Topics:</p> <ul> <li>00:00:00 &ndash; Introduction</li> <li>00:02:28 &ndash; Python 3.12.12, 3.11.14, 3.10.19 and 3.9.24 now available</li> <li>00:03:08 &ndash; Python 3.13.9 is now available</li> <li>00:03:26 &ndash; Python 3.15.0 alpha 1</li> <li>00:04:02 &ndash; PEP 804: An External Dependency Registry and Name Mapping Mechanism</li> <li>00:04:56 &ndash; PEP 806: Mixed Sync/Async Context Managers With Precise Async Marking</li> <li>00:06:34 &ndash; PEP 807: Index Support for Trusted Publishing</li> <li>00:07:21 &ndash; PEP 809: Stable ABI for the Future</li> <li>00:08:10 &ndash; PEP 810: Explicit Lazy Imports </li> <li>00:10:31 &ndash; Python lazy imports you can use today</li> <li>00:10:48 &ndash; Lazy Imports Using wrapt</li> <li>00:11:18 &ndash; Python 3.14 Is Here. How Fast Is It?</li> <li>00:17:45 &ndash; Free-Threaded Python Library Compatibility Checker</li> <li>00:19:54 &ndash; Scaling Asyncio on Free-Threaded Python</li> <li>00:24:06 &ndash; Real Python 3.14 Resources</li> <li>00:25:18 &ndash; Video Course Spotlight</li> <li>00:26:31 &ndash; Intro to NiceGUI: Build Interactive Python Web Apps</li> <li>00:30:22 &ndash; What Is &ldquo;Good Taste&rdquo; in Software Engineering?</li> <li>00:40:52 &ndash; Try Sphinx Docs Instantly in Your Browser</li> <li>00:43:11 &ndash; Introducing tdom: HTML Templating With t‑strings</li> <li>00:46:21 &ndash; Thanks and goodbye</li> </ul> <p>News:</p> <ul> <li><a href="https://pythoninsider.blogspot.com/2025/10/python-31212-31114-31019-and-3924-are.html">Python Insider: Python 3.12.12, 3.11.14, 3.10.19 and 3.9.24 are now available!</a></li> <li><a href="https://pythoninsider.blogspot.com/2025/10/python-3139-is-now-available.html">Python Insider: Python 3.13.9 is now available!</a></li> <li><a href="https://pythoninsider.blogspot.com/2025/10/python-3150-alpha-1.html">Python Insider: Python 3.15.0 alpha 1</a></li> <li><a href="https://peps.python.org/pep-0804/">PEP 804: An External Dependency Registry and Name Mapping Mechanism (Added)</a></li> <li><a href="https://peps.python.org/pep-0806/">PEP 806: Mixed Sync/Async Context Managers With Precise Async Marking (Added)</a></li> <li><a href="https://peps.python.org/pep-0807/">PEP 807: Index Support for Trusted Publishing (Added)</a></li> <li><a href="https://peps.python.org/pep-0809/">PEP 809: Stable ABI for the Future (Added)</a></li> <li><a href="https://peps.python.org/pep-0810/">PEP 810: Explicit Lazy Imports (Added)</a></li> <li><a href="https://pythontest.com/python-lazy-imports-now/">Python lazy imports you can use today - PythonTest</a></li> <li><a href="https://grahamdumpleton.me/posts/2025/10/lazy-imports-using-wrapt/">Lazy Imports Using <code>wrapt</code></a> &ndash; PEP 810 proposes adding explicit lazy imports to Python, but you can already achieve this with third-party libraries. This post shows you how using <code>wrapt</code>.</li> </ul> <p>Show Links:</p> <ul> <li><a href="https://blog.miguelgrinberg.com/post/python-3-14-is-here-how-fast-is-it">Python 3.14 Is Here. How Fast Is It?</a> &ndash; A comprehensive deep-dive comparison of performance figures between Python versions and variations, including the JIT and free-threaded mode.</li> <li><a href="https://ft-checker.com/">Free-Threaded Python Library Compatibility Checker</a> &ndash; A heat map and table summarizing Python free-threaded compatibility in a variety of common Python packages.</li> <li><a href="https://blog.changs.co.uk/python-314-3-asyncio-changes.html">Python 3.14: 3 <code>asyncio</code> Changes</a> &ndash; <code>asyncio</code> changes are often overlooked. In the latest 3.14 release, there are three new <code>asyncio</code> features and changes.</li> <li><a href="https://labs.quansight.org/blog/scaling-asyncio-on-free-threaded-python">Scaling Asyncio on Free-Threaded Python</a> &ndash; A recap of the work done in Python 3.14 to enable <code>asyncio</code> to scale on the free-threaded build of CPython.</li> <li><a href="https://hazimed.com/2025/09/13/meet-nicegui-the-nice-guy-of-python-web-frameworks/">Intro to NiceGUI: Build Interactive Python Web Apps</a> &ndash; Use <code>NiceGUI</code> to turn Python scripts into interactive web apps without touching HTML, CSS, or JavaScript.</li> </ul> <p>Discussion:</p> <ul> <li><a href="https://www.seangoedecke.com/taste/">What Is &ldquo;Good Taste&rdquo; in Software Engineering?</a> &ndash; This opinion piece discusses the difference between skill and taste when writing software. What counts as “clean code” for one person may not be the same for another.</li> </ul> <p>Projects:</p> <ul> <li><a href="https://snippets.documatt.com/">Try Sphinx Docs Instantly in Your Browser</a></li> <li><a href="https://davepeck.org/2025/09/22/introducing-tdom-html-templating-with-python-t-strings/">Introducing <code>tdom</code>: HTML Templating With t‑strings</a> &ndash; Python 3.14 introduces t-strings, and this article showcases <code>tdom</code>, a new HTML DOM toolkit that takes advantage of them to produce safer output.</li> </ul> <p>Additional Links:</p> <ul> <li><a href="https://blog.miguelgrinberg.com/post/benchmarking-micropython">Benchmarking MicroPython - miguelgrinberg.com</a></li> <li><a href="https://blog.miguelgrinberg.com/post/is-python-really-that-slow">Is Python Really That Slow? - miguelgrinberg.com</a></li> <li><a href="https://en.wikipedia.org/wiki/Bubble_sort">Bubble sort - Wikipedia</a></li> <li><a href="https://en.wikipedia.org/wiki/Fibonacci_sequence">Fibonacci sequence - Wikipedia</a></li> <li><a href="https://realpython.com/python314-new-features/">Python 3.14: Cool New Features for You to Try &ndash; Real Python</a></li> <li><a href="https://realpython.com/courses/whats-new-python-314/">What&rsquo;s New in Python 3.14 &ndash; Real Python</a></li> <li><a href="https://realpython.com/python-repl-autocompletion-highlighting/">Python 3.14 Preview: REPL Autocompletion and Highlighting &ndash; Real Python</a></li> <li><a href="https://realpython.com/python313-repl/">Python 3.13 Preview: A Modern REPL &ndash; Real Python</a></li> <li><a href="https://realpython.com/python-annotations/">Python 3.14 Preview: Lazy Annotations &ndash; Real Python</a></li> <li><a href="https://realpython.com/python314-error-messages/">Python 3.14 Preview: Better Syntax Error Messages &ndash; Real Python</a></li> <li><a href="https://realpython.com/python-t-strings/">Python 3.14 Preview: Template Strings (T-Strings) &ndash; Real Python</a></li> <li><a href="https://realpython.com/python313-free-threading-jit/">Python 3.13: Free Threading and a JIT Compiler &ndash; Real Python</a></li> <li><a href="https://quasar.dev/">Quasar Framework</a></li> </ul> <p>Level up your Python skills with our expert-led courses:</p> <ul> <li><a href="https://realpython.com/courses/building-gui-application-tkinter/">Building a Python GUI Application With Tkinter</a></li> <li><a href="https://realpython.com/courses/python-sphinx/">Documenting Python Projects With Sphinx and Read the Docs</a></li> <li><a href="https://realpython.com/courses/whats-new-python-314/">What&#x27;s New in Python 3.14</a></li> </ul> <p><a rel="payment" href="https://realpython.com/join">Support the podcast &amp; join our community of Pythonistas</a></p>