Ответ
Да, использовал. В 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. Чаще всего использую для поиска утечек памяти и узких мест в производительности.