В Go 1.27 в runtime/pprof добавляется встроенный детектор утечек горутин, принятый из предложения Uber.
В отличие от uber-go/goleak, который работает только в тестах и дает ложные срабатывания на живом сервере, новый профиль goroutineleak через сборщик мусора доказывает, что горутина навсегда заблокирована когда канал/лок недостижим ни для одной работающей горутины, гарантируя отсутствие ложных срабатываний.
Профиль доступен через стандартные четыре способа: вызов pprof.Lookup("goroutineleak").WriteTo(...) из кода, в тестах с самописными verifyNone/verifyTestMain, по HTTP через /debug/pprof/goroutineleak и через go tool pprof.
При этом есть нюанс - детектор не ловит все возможные утечки. Некоторые горутины могут оставаться незамеченными, если их канал формально достижим через глобальные переменные или локальные переменные работающих горутин, хотя фактически он никогда не будет разблокирован.
29.06.2026
Похожее
25.09.2026
Бенчим джейсон
Автор на реальном API с нагрузкой 50M запросов/сутки)сравнивает производительнос...
24.09.2026
Rune
Команда Unstable Build заопенсорсила свою нативную IDE Rune, написанную на Go. ...
23.09.2026
Специализированные аллокаторы
В Go 1.27 появилась оптимизация выделения памяти для объектов размером до 80 бай...
14.09.2026
Шейдеры на ebiten
Практический разбор пиксельных шейдеров в игровом движке Ebitengine для Go, где ...