Saltar al contenido
Explorar conocimiento

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