2026-07-15 –, S2
Want to know what makes your code slow? How much memory it actually uses? You reach for a profiler, but which one?
In this talk, we navigate the landscape of Python profilers, from classics like py-spy, Scalene and memray to newer tools like Tachyon, and work out when to use which. We cover timing and memory profiling methodologies, the sampling vs instrumentation distinction, and compare tools across multiple axes: accuracy and overhead, output format, native extension and thread support, and how well their output fits into agentic coding workflows. We also touch on the Linux perf profiler, eBPF-based profilers and continuous profiling for production systems.
Walk away with a profiler or two you hadn't tried before, a clearer sense of when to use which, and a CLI tool to help you decide next time you're unsure where to start.
Slides and code: https://github.com/jstriebel/which-profiler
Jonathan is a software engineer at the intersection of research and production, with deep experience in ML inference pipelines, distributed systems, and data-intensive biomedical imaging. Performance optimization has been a recurring part of his work, including profiling-driven improvements to large-scale ML inference pipelines, and previous talks on single-core optimization and profilers at EuroPython, PyConDE and PyCon Italia. He is also co-author of the Zarr v3 open data standard, widely adopted in scientific computing. Based in Berlin 🐻