Profiling
El profiling muestrea el uso de recursos en tiempo de ejecución de un programa (CPU/memoria/IO), localizando funciones calientes y cuellos de botella para guiar la optimización.
Propósito
Localizar los cuellos de botella de rendimiento con datos, evitando optimizaciones a ciegas.
Mecanismo
Perfil de CPU: muestrea las pilas de llamadas para hallar funciones costosas. Perfil de heap: puntos calientes de asignación de memoria. Los gráficos de llama visualizan el tiempo de pila. Node --prof, Python cProfile, Java JFR. El muestreo en producción minimiza el sobrecoste.
Casos de uso
- Optimización del rendimiento
- Identificación de cuellos de botella
- Gráficos de llama
Términos relacionados
Flame Graph
El flame graph visualiza como llamas las pilas de llamadas muestreadas: el ancho en el eje x de un marco equivale a su proporción de tiempo, el eje y a la profundidad de llamada, revelando puntos calientes. GLOSARIO
Just-In-Time Compilation
JIT compila el código caliente a código máquina en tiempo de ejecución, combinando la flexibilidad de un intérprete con el rendimiento de un compilador. GLOSARIO