Ir al contenido
  1. Posts/

¿Crees que tu código Python es lento? Deja de adivinar y empieza a medir

··232 palabras·2 mins·

🐢 Tu código Python es lento. ¿Pero dónde exactamente?

Optimizar sin datos es adivinar. Donald Knuth lo decía claro: “La optimización prematura es la raíz de todos los males.” Antes de tocar una línea de código, necesitás saber qué función consume realmente el tiempo.

Thomas Reid muestra el flujo exacto con dos herramientas:

🔍 cProfile — ya viene con Python, sin instalar nada:

import cProfile, pstats, io

pr = cProfile.Profile()
pr.enable()
run_all_systems()  # tu función a analizar
pr.disable()

s = io.StringIO()
pstats.Stats(pr, stream=s).sort_stats("cumtime").print_stats(10)
print(s.getvalue())

📊 snakeviz — convierte el output en un mapa visual interactivo:

pip install snakeviz
%load_ext snakeviz
%%snakeviz
run_all_systems()

El resultado: en un script de 30 segundos, el verdadero cuello de botella era la iteración masiva (171M llamadas a una función vacía), no la tarea CPU-heavy. Sin profiling, hubieras optimizado lo incorrecto.

Explicación en pocas palabras
#

Profiling es como un médico que hace análisis antes de operar. cProfile registra cuántas veces se llama cada función y cuánto tiempo toma. snakeviz transforma esa tabla de números en un gráfico de “icicle” interactivo donde podés ver visualmente qué parte del código es el verdadero problema.

Más información en el link 👇

También publicado en LinkedIn.
Juan Pedro Bretti Mandarano
Autor
Juan Pedro Bretti Mandarano