0Pricing
Go Academy · Lección

Perfilado de CPU con pprof

Recopilación y visualización de perfiles de CPU

Perfilado de CPU con pprof es una lección gratuita de Go Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Go Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Go Academy incluye 4 lecciones en total.

¿Qué es pprof?

net/http/pprof y el paquete runtime/pprof exponen datos de perfilado que muestran dónde emplea su programa el tiempo de CPU. La interfaz de línea de comandos go tool pprof analiza los perfiles.

Punto de conexión HTTP de pprof

Importe _ "net/http/pprof" para registrar puntos de conexión de perfilado bajo /debug/pprof/ en un servidor HTTP existente.

import _ "net/http/pprof"

go func() {
    log.Println(http.ListenAndServe(":6060", nil))
}()

Capturar un perfil de CPU

Capture 30 segundos de perfil de CPU mediante el punto de conexión HTTP:

go tool pprof http://localhost:6060/debug/pprof/profile?seconds=30

Perfilado de CPU basado en archivos

Para programas que no tienen un servidor HTTP, use runtime/pprof para escribir un archivo de perfil:

f, _ := os.Create("cpu.prof")
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
// run workload

Perfilado en pruebas

Ejecute las pruebas con los indicadores -cpuprofile y -memprofile para perfilar con una carga de pruebas realista:

go test -cpuprofile cpu.prof -memprofile mem.prof -bench=. ./...

Modo interactivo de go tool pprof

Abra el perfil y explórelo mediante comandos interactivos:

go tool pprof cpu.prof
(pprof) top        # top functions by CPU time
(pprof) list main  # annotated source
(pprof) web        # call graph in browser

Gráfico de llamas

Genere un gráfico de llamas (requiere graphviz) con -http=:8080 para abrir una interfaz web interactiva:

go tool pprof -http=:8080 cpu.prof

Interpretar la salida de top

top muestra las funciones ordenadas por tiempo propio (el tiempo empleado en esa función) y tiempo acumulado (incluidas las funciones llamadas). Concéntrese en las funciones con un tiempo propio elevado para encontrar oportunidades de optimización directa.

Perfil de goroutines

El punto de conexión /debug/pprof/goroutine muestra los rastros de pila de todas las goroutines. Úselo para detectar fugas de goroutines o goroutines bloqueadas.

go tool pprof http://localhost:6060/debug/pprof/goroutine

Perfilado continuo

Para sistemas en producción, use servicios de perfilado continuo (Pyroscope, Datadog, Google Cloud Profiler) para capturar perfiles sin detener el servicio.

pprof en CI

Compare los perfiles de dos versiones de su código para detectar regresiones de rendimiento antes de que lleguen a producción.

Comprobación rápida

¿Qué representa la columna "self" en la salida de top de pprof?

Resumen: perfilado de CPU con pprof

Puntos clave:

  • Importe net/http/pprof para el punto de conexión HTTP y runtime/pprof para archivos
  • go tool pprof -http=:8080 para la interfaz del gráfico de llamas
  • top: self time = coste directo; cumulative = coste total, incluidas las funciones llamadas
  • go test -cpuprofile para perfilar benchmarks

Preguntas frecuentes

¿La lección «Perfilado de CPU con pprof» es gratis?

Sí — el texto completo de «Perfilado de CPU con pprof» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Go Academy, actualiza a CoddyKit PRO. El curso de Go Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Perfilado de CPU con pprof»?

Recopilación y visualización de perfiles de CPU Practicas Go Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Go Academy?

No se requiere experiencia previa. Go Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Perfilado de CPU con pprof»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Go Academy?

Sí. Cada lección de Go Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Escritura de benchmarks con testing.B
  2. Perfilado de CPU con pprof
  3. Perfilado del heap y de las asignaciones
  4. Trazado de la ejecución
← Volver a Go Academy