Overview
Explore the journey of optimizing a Nintendo Entertainment System (NES) emulator in Python, from a sluggish 2 frames per second to an impressive 300+ fps using Cython. Dive into the advantages and challenges of leveraging Cython to achieve real-time performance from an existing Python codebase. Learn about emulation principles, optimization techniques, and how these lessons can be applied to other performance-dependent projects. Gain insights into the viability of Python for emulator development and discover practical strategies for overcoming performance bottlenecks in your own code.
Syllabus
Intro
What's in this Talk
What is Emulation?
Why Emulate?
Why Emulate in Python?
V1: a NES in Python
V1: it boots! But...
Making it faster
Cython and Optimization Fits with Optimization Principle
V2: 100x faster!
Challenges & Hazards
Lessons For My Day Job
The End
Taught by
PyCon US