Sobes.tech
Junior — Middle

Quais métodos de profiling você aplicou no seu trabalho?

sobes.tech IA

Resposta da IA

No trabalho com Go para profiling, geralmente uso o pacote embutido pprof, que permite coletar e analisar perfis de CPU, memória, bloqueios e goroutines.

Métodos principais:

  • Profil de CPU: ajuda a entender quais funções consomem mais tempo de CPU.
  • Profil de heap: identifica vazamentos de memória e objetos que ocupam muito espaço.
  • Profil de bloqueio: analisa bloqueios e esperas.
  • Profil de goroutines: mostra o estado das goroutines, ajuda a detectar deadlocks ou vazamentos.

Exemplo de início de perfil de CPU:

import (
    "net/http"
    _ "net/http/pprof"
)

func main() {
    go func() {
        log.Println(http.ListenAndServe("localhost:6060", nil))
    }()
    // código principal
}

Após iniciar, você pode conectar-se a http://localhost:6060/debug/pprof/ e baixar perfis para análise usando go tool pprof.

Também uso ferramentas externas, por exemplo, perf no Linux para profiling do sistema, e visualizadores como pprof.io.