Ответ
Stop The World (STW) — это пауза в выполнении всех горутин во время работы сборщика мусора (GC) в Go. В этот момент программа полностью останавливается для сканирования и освобождения памяти.
Пример:
package main
import (
"runtime"
"time"
)
func main() {
go func() {
for {
time.Sleep(100 * time.Millisecond)
}
}()
runtime.GC() // Вызывает STW паузу
}
Нюансы:
- Чем больше heap, тем дольше STW.
- Go 1.8+ сократил STW до субмиллисекундных задержек в большинстве случаев.
- Можно мониторить через
debug.SetGCPercent()или GODEBUG=gctrace=1.
Оптимизация: уменьшение количества указателей в куче снижает время STW.