Профилирование с pprof: находим узкое место
Не гадайте, где тормозит программа — измерьте. Go поставляется с pprof, который снимает профиль CPU и памяти без сторонних инструментов.
import _ "net/http/pprof"
// pprof сам зарегистрирует хендлеры на /debug/pprof/
go http.ListenAndServe("localhost:6060", nil)Снять и посмотреть
go tool pprof http://localhost:6060/debug/pprof/profile
# внутри: top, list имя_функции, webКоманда top покажет функции, где программа проводит больше всего времени. web нарисует граф вызовов. Обычно узкое место оказывается не там, где вы его ждали.