1 puntos por darjeeling 2 시간 전 | Aún no hay comentarios. | Compartir por WhatsApp

Caso de uso de Tachyon, el perfilador por muestreo incorporado en Python 3.15, para visualizar cuellos de botella en multihilo y detectar trampas de rendimiento en abstracciones OOP.

¿Qué es Tachyon?

Un perfilador basado en muestreo que se añadirá a la biblioteca estándar en Python 3.15.
Su punto clave es que soporta de forma nativa entornos free-threading (sin GIL), algo que los perfiladores anteriores habían pasado por alto.

Características principales

  • Método de muestreo con bajo overhead
  • Soporte para perfilado simultáneo de todos los hilos (opción -a)
  • Posibilidad de adjuntarse remotamente (attach) a un proceso en ejecución
  • Soporte para varios formatos de salida, como flamegraphs
  • Reconoce async — también puede aplicarse a programas con asyncio

Cómo ejecutarlo

sudo -E uv run -p 3.15.0a6t python -m profiling.sampling run \  
  -a --flamegraph -o profile.html -r 20khz your_script.py  
# -a       : perfila todos los hilos además del hilo principal  
# -r 20khz : 20,000 muestras por segundo (la precisión puede ajustarse)  
# resultado : HTML de flamegraph — la columna roja es el hot path  

Caso real de uso — detección de cuellos de botella en free-threading

Antes de optimizar — el acceso a Grid mediante __getitem__ ocupaba el 75% del tiempo total de ejecución

https://blog.changs.co.uk/images/unoptimised-bench.png

Después de optimizar — al cambiar a acceso directo al tuple interno, se redujo a 5.32%

https://blog.changs.co.uk/images/optimised-bench.png

Por qué importa

  • Hasta ahora, los problemas de rendimiento en free-threading solo podían encontrarse “a ojo”
  • Tachyon es la primera herramienta oficial que muestra visualmente dónde se bloquean los hilos
  • Se abre el camino para que desarrolladores de Python en general puedan medir y mejorar directamente el rendimiento en free-threading

Aún no hay comentarios.

Aún no hay comentarios.