Anjana Vakil - Exploring Python Bytecode
Channel: EuroPython Conference
Date: 05/08/2016

Anjana Vakil - Exploring Python Bytecode
[EuroPython 2016]
[20 July 2016]
[Bilbao, Euskadi, Spain]
(https://ep2016.europython.eu//conference/talks/exploring-python-bytecode)

Do you ever wonder how your Python code looks to the interpreter? What
those `.pyc` files are? Why one program outperforms another, even if
the code is similar? Then let’s dive into Python bytecode! Bytecode is
the "intermediate language" that expresses your source code as machine
instructions the interpreter can understand. In this talk we’ll see
what role it plays in executing Python programs, learn to read it with
the `dis` module, and analyze it to better understand a program’s
performance.

-----

Do you ever wonder what your simple, beautiful Python code looks like
to the interpreter? Are you starting to get curious about those `.pyc`
files that always pop up in your project, and you always ignore? Would
you like to start investigating your Python code's performance, and
learn why some programs you write run faster than others, even if the
code looks more or less the same? Have you simply fallen so completely
in love with Python that you're ready to peer deep inside its soul?

If you, like me, answered "yes" to any of these questions, join me in
an illuminating adventure into the world of Python bytecode! Bytecode
is the "intermediate language" that expresses your Python source code
as machine instructions the interpreter (specifically CPython, the
"standard" interpreter) can understand. Together we'll investigate
what that means, and what role bytecode plays in the execution of a
Python program. We'll discover how we simple humans can read this
machine language using the `dis` module, and inspect the bytecode for
some simple programs. We'll learn the meaning of a few instructions
that often appear in our bytecode, and we'll find out how to learn the
rest. Finally, we'll use bytecode to understand why a piece of Python
code runs faster if we put it inside of a function.

When you go home, you'll be able to use bytecode to get a deeper
understanding of your Python code and its performance. The adventure
simply starts here; where it ends is up to you!