Использовал ли Profiler

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

Ответ

Да, использовал. В Go есть встроенный pprof для профилирования CPU, памяти, горутин и блокировок. Пример для CPU профилирования:

import (
    "os"
    "runtime/pprof"
)

func main() {
    f, _ := os.Create("cpu.prof")
    defer f.Close()
    pprof.StartCPUProfile(f)
    defer pprof.StopCPUProfile()

    // Код для профилирования
}

Для памяти:

pprof.WriteHeapProfile(f)

Анализ через go tool pprof cpu.prof. Также есть trace для анализа событий в runtime. Чаще всего использую для поиска утечек памяти и узких мест в производительности.