Profiler de muestreo de bajo impacto para Java que captura perfiles de CPU, asignaciones, bloqueos y memoria nativa sin sesgo de safepoints.
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
Instala Scalene con pip
python3 -m pip install -U scalene - 2
Analiza el rendimiento de tu programa
scalene run your_prog.py - 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
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
La plataforma de NVIDIA para CUDA en Rust, con crates de runtime para el host y modelos SIMT y Tile para escribir kernels de GPU en Rust.
Un profiler de muestreo para programas Python que se conecta a procesos en ejecución sin modificar el código ni reiniciarlos.
Herramienta de línea de comandos y web para visualizar y analizar datos de perfiles en formato profile.proto.
Herramienta gratuita para Windows que permite aislar problemas de rendimiento de CPU y memoria, con funciones especiales para investigar código del runtime de .NET.
Un lenguaje de programación integrado en Python que compila kernels numéricos con JIT para ejecutarlos en CPU y GPU, como CUDA, Vulkan y Metal.