- Un perfilador de CPU, GPU y memoria de alto rendimiento para Python que realiza varias tareas que otros perfiladores de Python no hacen o no pueden hacer
- Se ejecuta mucho más rápido y al mismo tiempo ofrece información mucho más detallada; además, es el primer perfilador que integra sugerencias de optimización basadas en IA
- Ofrece CLI y una GUI basada en web
- Rápido y preciso
- Rápido: usa muestreo en lugar de depender de instrumentación o de la función de trazado de Python. La sobrecarga normalmente no supera el 10~20% y a menudo es menor
- Preciso: los resultados de pruebas de precisión mostraron que Scalene es uno de los perfiladores más precisos y que mide con exactitud el tiempo empleado
- Realiza perfilado a nivel de línea y por función, señalando tanto las funciones responsables del tiempo de ejecución como líneas específicas de código en el programa
- Perfilado de CPU
- Mide por separado el tiempo empleado en código Python y código nativo (incluidas bibliotecas), para que los desarrolladores puedan enfocarse en el código que realmente pueden optimizar
- Resalta en rojo los hotspots que representan una parte significativa del tiempo de CPU o de la asignación de memoria
- Separa el tiempo de sistema de forma independiente, lo que permite encontrar fácilmente cuellos de botella de I/O
- Perfilado de GPU
- Reporta el tiempo de GPU únicamente en sistemas basados en NVIDIA
- Perfilado de memoria
- Realiza perfilado del uso de memoria e identifica líneas específicas de código que causan crecimiento de memoria mediante un asignador de memoria especial
- Muestra por separado la proporción de consumo de memoria entre código Python y código nativo
- Genera perfiles de memoria línea por línea
- Identifica líneas donde es probable que ocurra una fuga de memoria
- Con el perfilado de volumen de copias permite detectar fácilmente copias no intencionales al cruzar el límite entre Python y bibliotecas (por ejemplo, cuando un arreglo de
numpy se convierte por error en un arreglo de Python)
- Otras funciones
- Mediante la opción
--reduced-profile, puede generar un perfil reducido que solo reporta líneas que consumen más del 1% de la CPU o que realizan al menos 100 asignaciones
- Admite el decorador
@profile para perfilar solo funciones específicas
- Permite pausar y reanudar el perfilado de programas que se ejecutan en segundo plano (iniciados con
&)
2 comentarios
Parece más ligero y útil que Nsight, así que lo probaré y dejaré una reseña. ¡Gracias por la presentación!
Si le dan me gusta, se los agradeceré. A veces, cuando publico noticias así, me da curiosidad saber cuántas personas las están viendo. Jaja