Desarrollador Go: pregunta de entrevista
¿Cómo analizas un servicio Go?
Haz profiling antes de optimizar. Usa pprof para comparar perfiles de CPU, heap, goroutines, mutex o bloqueos con una línea base y valida el cambio con la misma carga.
Respuesta directa
Qué debe cubrir una buena respuesta
Cómo funciona
El profiling responde dónde va realmente el tiempo y la memoria, no dónde se supone. pprof recoge muestras de CPU, asignaciones de heap, bloqueos, contención de mutex e instantáneas de goroutines; cada perfil responde una pregunta distinta, así que el síntoma decide cuál capturar. Un perfil útil sale de carga realista, se compara con una línea base y va seguido de un benchmark que demuestre la mejora en lugar de otra suposición.
Ejemplo
Expón endpoints pprof protegidos, captura un perfil de CPU bajo carga representativa e inspecciona la ruta más costosa antes de cambiar asignaciones. Cuando una API mostró presión de GC alta, el perfil de heap señaló buffers JSON por solicitud; reutilizarlos con sync.Pool redujo las asignaciones un tercio, verificado con go test -bench y -benchmem antes y después.
Errores frecuentes
- Optimizar código que el perfil nunca mostró como caliente.
- Perfilar un proceso ocioso y concluir que el servicio está bien.
- Dejar pprof expuesto sin autenticación en un listener público.
Una estructura útil para responder
Responde desde tu propia experiencia.
No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.
Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.