11 puntos por xguru 2024-10-24 | 2 comentarios | Compartir por WhatsApp
  • 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

 
lethee 2024-10-29

Parece más ligero y útil que Nsight, así que lo probaré y dejaré una reseña. ¡Gracias por la presentación!

 
xguru 2024-10-30

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