В Go есть встроенные бенчмарки: func BenchmarkMyFunc(b *testing.B) { for i := 0; i < b.N; i++ { MyFunc() } }. Запуск: go test -bench=. -benchmem. Показывает ns/op, B/op, allocs/op. Для сравнения: benchstat old.txt new.txt. b.ResetTimer() — сбросить таймер после setup. b.ReportAllocs() — показать аллокации. b.RunParallel — параллельный бенчмарк. Для профилирования: go test -cpuprofile cpu.prof -memprofile mem.prof, потом go tool pprof. Важно: бенчмарки нестабильны — запускай несколько раз, на изолированной машине, с -count=10.