concepto · intermedio · 2 min de lectura
Profiling
El profiling mide el consumo de recursos de un programa —CPU, memoria, I/O— identificando cuellos de botella y funciones que consumen más tiempo del esperado.
No requiere conocimientos previos.
Alcance en breve
Cubre
- Profiling as a concept
No cubre
- implementation details
Supone
- The reader understands relevant fundamentals.
Resumen
Un profiler es una herramienta que instrumenta el código —o muestrea la ejecución— para medir dónde pasa el tiempo el programa y cuánta memoria usa. El output típico es un flame graph o una tabla de funciones ordenadas por tiempo de ejecución.
A diferencia del benchmarking —que mide el rendimiento total—, el profiling desglosa el rendimiento por función, línea y hasta instrucción. Te dice que parseJson() consume el 40% del tiempo y que el 90% de las allocaciones de memoria vienen de createBuffer().
Alcance y supuestos
Cubre profiling, herramientas y la diferencia con benchmarking. Asume familiaridad con desarrollo.
Modelo mental
Un contador que sigue a cada empleado de una fábrica con un cronómetro, anotando exactamente cuánto tarda cada uno en cada tarea. Al final del día, sabés que Juan pasa 3 horas atornillando y 1 hora buscando tornillos.
Uso práctico
- ✅ Optimización de rendimiento: siempre perfilar antes de optimizar.
- ❌ Optimizar sin perfilar: adivinás en vez de medir.
Ejemplo trabajado: profiling con Node.js
node --prof app.js
node --prof-process isolate-*.log > profile.txt
El output muestra qué funciones consumen más ticks de CPU.
Evidencia
- pprof, perf (Linux), Instruments (macOS) y el profiler integrado de Node.js son herramientas estándar.
Fuentes citadas
- Wikipedia, Unit testing (Síntesis, 21-07-2026)