Pablo Galindo Salgado
Miembro del Steering Council de Python, Python release manager de las versiones 3.10 y 3.11 y core developer de Python centrado en el desarrollo del interprete y el parser. Trabajo en el equipo de Python infraestructura en Bloomberg L.P. Paso mi tiempo libre haciendo simulaciones de agujeros negros y relatividad general. También tengo un gato pero no programa.
Session
¿Sabías que Python 3.12 incluirá uno de los compiladores "just-in-time" (JIT) más pequeños del mundo? Además, te sorprenderá saber que no sirve para lo que probablemente estás pensando.
Poder comprender dónde nuestras aplicaciones de Python están gastando su tiempo es crucial para poder mejorar las características de rendimiento de nuestras aplicaciones. Ya existen varias herramientas para ayudar con esta tarea, pero todas tienen sus propias limitaciones, especialmente cuando está involucrado código nativo escrito en C, C++, Rust, etc. Poder recopilar y correlacionar información de rendimiento con otros marcadores relacionados con el rendimiento, como branch predictions, fallos de caché, cambios de contexto y otros eventos, tener un buen profiler que soporte obtener estos datos puede ser clave para comprender algunas de las situaciones más desafiantes.
Para ayudar con esto, Python 3.12 incluirá soporte para el profiler "perf" de Linux. El profiler perf de Linux es una herramienta muy potente que te permite obtener información sobre el rendimiento de aplicaciones. "perf" también cuenta con un ecosistema muy activo de herramientas que ayudan con el análisis de los datos que produce.
En esta charla, hablaremos sobre cómo se implementó soporte para esta nueva funcionalidad en Python 3.12, cómo difiere el soporte para "perf" de otros profilers orientados al rendimiento para Python, y cómo se puede utilizar de manera efectiva, incluida la activación dinámica para habilitar el profiling en producción. También cubriremos algunos de los requisitos necesarios para obtener los mejores resultados, así como algunas de las limitaciones de la implementación y cómo pueden afectar a nuestras métricas.