GuíaAvanzado

Guía de Performance y Profiling

La intuición sobre qué hace lento a un programa casi siempre miente, y optimizar sin medir es la forma más común de perder tiempo arreglando la parte que no era el problema. Esta guía enseña el proceso completo de optimización con la única regla que importa: medir primero, cambiar después. Trabajas sobre un solo caso realista —Nómada, una herramienta de línea de comandos que procesa registros de viaje de una flota de vehículos y tarda cuatro minutos en generar un reporte mensual— y lo llevas a los pocos segundos usando el método real: cronometrar con el reloj correcto, perfilar con `cProfile` para encontrar dónde se va el tiempo de verdad (que casi nunca es donde el equipo cree), medir el costo de memoria, elegir la estructura de datos correcta para el problema, y aplicar la optimización específica que corresponde a cada cuello de botella real. La guía también enseña a reconocer cuándo Python puro ya no alcanza y hay que empujar el trabajo a código vectorizado, y cómo documentar y proteger una optimización para que no se pierda en el próximo refactor. El proyecto final exige el reporte honesto de qué cambió, cuánto ganó cada cambio y qué se decidió NO optimizar y por qué.

64
lecciones
8
módulos
Inglés · Español
disponible en
certificado
Gratis
acceso
NIEVA

Resultados

Lo que vas a poder hacer

  • Cronometrar código con el reloj correcto y evitar la trampa del micro-benchmark que mide algo distinto de lo que importa en producción
  • Usar el profiler de Python (`cProfile`) para encontrar el cuello de botella real de un programa, distinguiendo tiempo propio de tiempo acumulado
  • Medir el consumo de memoria de un programa y reconocer cuándo una estructura de datos no cabe y hay que usar generadores o procesamiento por lotes
  • Elegir entre lista, conjunto y diccionario según el patrón de acceso real, entendiendo el costo escondido de operaciones como `in`
  • Aplicar optimizaciones concretas sobre un cuello de botella ya identificado: sacar trabajo de un bucle caliente, memoización, evaluación perezosa, reducir llamadas a función
  • Reconocer cuándo un cambio de algoritmo le gana a mil micro-optimizaciones de sintaxis
  • Identificar cuándo Python puro ya no alcanza y el trabajo debe empujarse a arreglos numéricos y operaciones vectorizadas
  • Documentar por qué una porción de código optimizado se ve "rara", y escribir pruebas de rendimiento que avisen si la mejora se degrada con el tiempo
  • Verificar que una optimización sigue dando el resultado correcto, no solo que es más rápida
  • Reportar con honestidad qué se optimizó, cuánto se ganó, qué costó en legibilidad y qué se dejó deliberadamente sin tocar

Antes de empezar

Qué necesitas traer

Es para ti si...

  • Desarrolladores Python de nivel intermedio con un script o servicio lento que nunca midieron sistemáticamente por qué
  • Devs que ya intentaron "optimizar" cambiando código a ciegas y descubrieron que el tiempo no bajó
  • Equipos donde cada persona tiene una teoría distinta de dónde está el cuello de botella y nadie las verificó con un profiler
  • Personas preparando entrevistas técnicas donde se pregunta por complejidad algorítmica, uso de memoria o cómo diagnosticar código lento
  • Cualquiera que necesite decidir, con criterio y no por moda, cuándo vale la pena optimizar y cuándo el costo de mantenimiento supera la ganancia

Requisitos y materiales

  • Saber Python: funciones, clases, estructuras de datos, comprensiones, y haber escrito programas más allá de un ejercicio
  • No se requiere experiencia previa con perfilado ni con herramientas de medición de rendimiento
  • Conviene haber sentido el problema real: un script que tarda demasiado sin saber por qué, o un cambio que "debería" haber acelerado algo y no cambió nada
  • No es necesario conocer concurrencia (async, hilos, procesos) ni bases de datos: esos temas viven en sus propias guías

Contenido

El temario, módulo por módulo

Abre cualquiera para ver sus lecciones.

Dudas frecuentes

Lo que suele preguntarse

Empieza cuando quieras

Reseñas

Lo que dicen los estudiantes

Estas reseñas son de estudiantes inscritos que completaron al menos el 50% del curso. Moderamos las reseñas solo por motivos de contenido (spam, lenguaje ofensivo, datos personales), nunca por ser críticas o negativas.

Aún no hay reseñas aprobadas.

¡Sé el primero en compartir tu experiencia!