Repolode
plasma-umass

plasma-umass/scalene

Un profiler de Python que informa el uso de CPU, GPU y memoria por línea, con sugerencias opcionales de optimización generadas por IA.

Estrellas
13,549
Forks
446
Issues abiertos
154
Último commit
hace 5 días

¿Qué es?

Scalene es un profiler para programas Python que mide el tiempo de CPU, el tiempo de GPU de NVIDIA y la asignación de memoria, tanto por línea como por función. Separa el tiempo dedicado al código Python del dedicado al código nativo, como las bibliotecas C/C++, y también informa del tiempo de sistema para ayudar a localizar cuellos de botella de E/S. Scalene usa muestreo en lugar de trazado, por lo que su sobrecarga es baja en comparación con la de los profilers basados en instrumentación.

Además de medir tiempos, Scalene registra el crecimiento de memoria y el volumen de copias, señala líneas que probablemente tengan fugas de memoria y admite código async al atribuir el tiempo dedicado a esperar coroutines. Los resultados se pueden consultar en una interfaz web que funciona sin conexión, en la terminal o en un archivo HTML independiente. También se puede ejecutar desde VS Code o Jupyter, y es compatible con Python 3.13t y 3.14t sin GIL.

Scalene puede enviar los puntos críticos detectados al perfilar a proveedores de IA como OpenAI, Azure, Amazon Bedrock o modelos locales de Ollama para proponer optimizaciones de código. Estas sugerencias se generan bajo demanda desde la interfaz gráfica y requieren que proporciones tus propias credenciales.

Funciones clave

  • 01Informa del tiempo de CPU por línea, desglosado entre código Python, código nativo y tiempo de sistema.
  • 02Perfila el tiempo de GPU de NVIDIA y la asignación de memoria, incluido el crecimiento de memoria por línea.
  • 03Detecta posibles fugas de memoria y mide el volumen de copias entre Python y las bibliotecas.
  • 04Atribuye por línea el tiempo de espera de operaciones async, junto con los niveles de concurrencia.
  • 05Ofrece una interfaz web que funciona sin conexión, salida en la terminal y exportación a HTML independiente.

Casos de uso

  • Encontrar qué líneas de un script lento de Python consumen más CPU o memoria.
  • Diagnosticar si la causa de una ralentización es el código Python, las bibliotecas nativas o la E/S.
  • Localizar fugas de memoria o conversiones innecesarias de numpy a listas en pipelines de datos.
  • Perfilar servicios async para comprobar si las esperas se ejecutan en serie o de forma concurrente.

Inicio rápido

  1. 1

    Instala Scalene con pip

    python3 -m pip install -U scalene
  2. 2

    Analiza el rendimiento de tu programa

    scalene run your_prog.py
  3. 3

    Consulta el perfil en el navegador

    scalene view

Antes de usarlo

  • Actualmente, el análisis del rendimiento de la GPU está limitado a sistemas con NVIDIA.
  • Para recibir sugerencias de optimización con IA, necesitas tus propias credenciales de un proveedor como OpenAI, Azure o Amazon Bedrock, o de un modelo local de Ollama.

En colecciones

Temas

#python#profiling#performance-analysis#memory-profiling#cpu-profiling#gpu#async#cpu#gpu-programming#memory-allocation

Preguntas frecuentes

¿Qué es scalene?
Un profiler de Python que informa el uso de CPU, GPU y memoria por línea, con sugerencias opcionales de optimización generadas por IA. Scalene es un profiler para programas Python que mide el tiempo de CPU, el tiempo de GPU de NVIDIA y la asignación de memoria, tanto por línea como por función. Separa el tiempo dedicado al código Python del dedicado al código nativo, como las bibliotecas C/C++, y también informa del tiempo de sistema para ayudar a localizar cuellos de botella de E/S. Scalene usa muestreo en lugar de trazado, por lo que su sobrecarga es baja en comparación con la de los profilers basados en instrumentación.
¿scalene es gratuito? ¿Qué licencia tiene?
scalene es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿scalene sigue mantenido?
Mantenimiento activo. El último commit de scalene fue el 1 nov 2026.
¿Para qué puedo usar scalene?
Encontrar qué líneas de un script lento de Python consumen más CPU o memoria. Diagnosticar si la causa de una ralentización es el código Python, las bibliotecas nativas o la E/S. Localizar fugas de memoria o conversiones innecesarias de numpy a listas en pipelines de datos. Perfilar servicios async para comprobar si las esperas se ejecutan en serie o de forma concurrente.
¿Cómo se instala scalene?
Instala Scalene con pip: python3 -m pip install -U scalene Analiza el rendimiento de tu programa: scalene run your_prog.py Consulta el perfil en el navegador: scalene view
¿Dónde consigo scalene?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/plasma-umass/scalene

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados