Работал ли с профилировщиком

«Работал ли с профилировщиком» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, работал с pprof — стандартным профилировщиком Go. Использовал его для анализа CPU, памяти и блокировок.

Пример CPU профилирования:

import _ "net/http/pprof"

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

// Затем собираем профиль:
// go tool pprof http://localhost:6060/debug/pprof/profile?seconds=30

Анализ аллокаций:

import "runtime/pprof"

f, _ := os.Create("heap.pprof")
pprof.WriteHeapProfile(f)
f.Close()

Для визуализации удобно использовать go tool pprof -http=:8080 profile.out.