PyCon Israel 2022

πŸ‡ΊπŸ‡Έ Memoirs of a Python Object: Memory Management and Improving Performance
06-29, 10:30–10:50 (Asia/Jerusalem), Main Hall

Python is known to be expensive in Memory and CPU. However, it does not mean you can't do anything about it.
In this talk, we'll learn about Python's memory management, and what you can do today to improve the performance of your Python program.


Python is a dynamically typed and garbage collected language. These traits naturally mean that Python can be less efficient in terms of its CPU performance and its memory utilization.
In this talk, we learn about how Python manages its memory, and what you can do about it to improve the performance of your Python program.
More specifically, we'll learn about:
- Variables vs Names - why Python is different than other programming languages
- How Python represents objects, and specifically - the PyObject struct
- Python's two methods of garbage collecting - Reference Counting and Tracing
- How you can improve the performance of your program
- Two case studies from Instagram (Facebook)


Session language –

English

Target audience –

Developers

Michael (Mickey) is a software engineer in Meta (previously Facebook) for the past 2.5 years, and worked as part of the Data Infra team in the Novi project.
His team built an ORM and Storage Engine for Novi's OLTP storage. The ORM and Storage engine layers were written initially only in Python. Later, their low-level stack was re-written to C++, keeping the higher levels and API in Python.
His team has faced many performance challenges during his time at Meta, and has learned about improving performance in Python through that.
Michael now works as part of the Authentication Services team, where he works on building the future authentication levers for Meta's Family of Apps.
Besides working at Meta, Michael is a Computer Science BSc graduate with honors from Tel Aviv University.