I wrote this Just In Time

By Timothy Edmund Crosley

Elevator Pitch

When you think of JIT do you think of a compilation technique that is fully foreign to the CPython world? In this talk, I’ll go over the many ways it can and is applied to achieve drastic performance improvements across Python implementations, and how you can use it to gain an edge on your projects.

Description

You’ve undoubtedly heard of how Java and many other languages use JIT for code compilation to improve runtime performance, but in this talk, we will explore the many other uses within the CPython and Python ecosystem. From the Python Standard Libraries usage to create extremely memory efficient objects to Lyft’s JIT version of marshmallow that achieves drastically better performance, JIT is already widely and successfully used to solve problems that would otherwise require using extensions written in other Languages.

Still, due to safety and maintainability concerns, I believe we’ve barely scratched the surface of what can be accomplished with this technique. What if we could work around those concerns to fully take advantage of this technique with confidence? I’ll introduce techniques to do just that, as well as explore exciting and novel applications that illustrate just how useful the technique can be. We’ll use JIT to create only the request handling code and logic needed for an API endpoint achieving unparalleled performance and we’ll create a templating engine that provides full access to the DOM within Python while using less memory and rendering pages faster than existing Python templating systems. Let’s learn to stop being afraid of JIT and start embracing it to accomplish more, faster while staying at a higher level of abstraction.

Outline:

  • 1 Minute: Quick Introduction
  • 4 Minutes: An introduction to JIT
  • 4 Minutes: An overview of how it’s used within the Python Standard Library
  • 5 Minutes: An overview of projects currently within the Python ecosystem that leverage it
  • 5 Minutes: Using JIT to handle HTTP requests more quickly
  • 5 Minutes: Using JIT to render web pages more quickly
  • 1 Minute: Wrap up