Saltar al contenido
Explorar conocimiento

concepto · intermedio · 1 min de lectura

CPU Profiling

El CPU profiling identifica qué funciones consumen más tiempo de procesador, permitiendo enfocar la optimización donde tiene mayor impacto.

No requiere conocimientos previos.

Alcance en breve

Cubre

  • CPU Profiling as a concept

No cubre

  • implementation details

Supone

  • The reader understands relevant fundamentals.

Resumen

El CPU profiling mide cuánto tiempo pasa el procesador ejecutando cada función. A diferencia del profiling general —que puede incluir tiempo de I/O—, el CPU profiling se enfoca específicamente en el tiempo de CPU, ignorando esperas por red, disco o timers.

Un CPU profiler muestrea la pila de llamadas a intervalos regulares —cada 1ms, por ejemplo—. Las funciones que aparecen en más muestras son las que más CPU consumen. El resultado se visualiza como flame graph: las barras más anchas indican más tiempo de CPU.

Alcance y supuestos

Cubre CPU profiling, herramientas y cómo interpretar flame graphs. Asume familiaridad con profiling.

Modelo mental

Un fotógrafo que saca una foto del motor de un auto cada segundo. Después de una carrera, el 40% de las fotos muestran el pistón 3 en movimiento. Ahí está el desgaste.

Uso práctico

  • ✅ Optimizar funciones que consumen CPU desproporcionadamente.
  • ❌ Optimizar sin medir: la intuición sobre dónde está el cuello de botella suele ser incorrecta.

Ejemplo trabajado: flame graph con Node.js

clinic flame -- node app.js

Abre un flame graph interactivo donde cada barra es una función. El ancho indica tiempo de CPU.

Evidencia

  • perf en Linux, Instruments en macOS, y clinic en Node.js son herramientas de CPU profiling.

Fuentes citadas