Episode 95: What Is a JIT and How Can Pyjion Speed Up Your Python?
The Real Python Podcast
Jan 28, 2022 1h 6m
How can you can speed up Python? Have you thought of using a JIT (Just-In-Time Compiler)? This week on the show, we have Real Python author and previous guest Anthony Shaw to talk about his project Pyjion, a drop-in JIT compiler for CPython 3.10.
Anthony has been working on Pyjion over the past year and recently released version 1.0. He talks about how he took over the project from Brett Cannon and Dino Viehland. He covers the background on compilers and assembly that he needed to take on this project.
We discuss where a tool like this can speed up your Python code, and we consider alternative solutions. We also talk about his desire to make the project as deeply compatible with Python code as possible.
Anthony talks about how his dive into writing the CPython Internals book led him into the project. We talk about what type of developer would benefit from exploring the book.
We also cover his recent Real Python article, titled “Advanced Visual Studio Code for Python Developers.” It’s an excellent resource that VS Code users should bookmark to revisit as they grow with the tool.
Spotlight: CPython Internals Book: Your Guided Tour Through the Python 3 Interpreter
Unlock the inner workings of the Python language, compile the Python interpreter from source code, and participate in the development of CPython.
- 00:00:00 – Introduction
- 00:02:15 – Cloud Developer Advocate at Microsoft
- 00:04:57 – Pyjion, a drop-in JIT compiler for CPython
- 00:07:52 – PyCon 2020 & 2021 talks and wanting to take on the project
- 00:12:46 – How Pyjion uses .NET 6
- 00:17:32 – Trying out Pyjion functionality online
- 00:21:43 – Sponsor: Honeybadger
- 00:22:28 – Portability of projects using Pyjion
- 00:29:55 – Focus on compatibility with Python code
- 00:33:07 – Choosing to make it based on Python 3.10
- 00:37:45 – What would be prerequisites to work on the project?
- 00:40:40 – Other ways to help with project
- 00:44:34 – CPython Internals: Who is the book for?
- 00:49:46 – What resources do you need to work through the book?
- 00:52:04 – Spotlight: CPython Internals Book
- 00:53:21 – Do you use an IDE or code editor?
- 00:56:12 – Why did you decide to write the book?
- 00:57:12 – Advanced Visual Studio Code for Python Developers
- 01:03:20 – What are you excited about in the world of Python?
- 01:04:03 – What do you want to learn next?
- 01:05:33 – Thanks and goodbye
- Pyjion - A JIT for Python based upon CoreCLR
- Pyjion main documentation
- Anthony Shaw - Why is Python slow? - YouTube
- Restarting Pyjion, a general purpose JIT for Python- is it worth it? - YouTube
- Common Language Runtime (CLR) overview - .NET | Microsoft Docs
- Writing Python Extensions in Assembly
- Beginning x64 Assembly Programming | SpringerLink
- Pyston | Python Performance
- facebookincubator/cinder: Instagram’s performance oriented fork of CPython.
- Welcome to Hypothesis! — Hypothesis 6.36.0 documentation
- CPython Internals Book – Real Python
- Advanced Visual Studio Code for Python Developers – Real Python
- vscode-pets: Adds playful pets 🦀🐱🐶 in your VS Code window
- What’s New In Python 3.11 — Python 3.11.0a4 documentation
- Compilers: Principles, Techniques, and Tools (Dragon Book)