Process: пул буферов с Reset
Буферы аллоцируются на каждый запрос. Реализуйте process: пул bytes.Buffer с New, и в цикле — Get → Reset → работа → Put. После Reset каждый заход начинается с чистого буфера.
Показать решение
GolangРешение
func process(n int) string {
bufPool := sync.Pool{
New: func() any { return new(bytes.Buffer) },
}
var out string
for i := 0; i < n; i++ {
buf := bufPool.Get().(*bytes.Buffer)
buf.Reset()
buf.WriteString("x")
out = buf.String()
bufPool.Put(buf)
}
return out
}Записаться на разбор
10 000 ₽ · 60 минут · онлайн