Как переиспользовать буферы?

Middle
479 просмотров
AFK Offer AI

Самый простой способ — sync.Pool с bytes.Buffer. Берёшь буфер из пула, Reset() его, пишешь туда данные, потом возвращаешь в пул. Это особенно важно в HTTP-хендлерах, где тысячи запросов в секунду и каждый создаёт буфер. Другой вариант — преаллоцировать буфер один раз и передавать его через параметр. В io.CopyBuffer можно передать свой буфер вместо создания нового. Главное — не забывать Reset() перед переиспользованием, иначе получишь данные от предыдущего запроса.

Следующий вопрос

Что такое accept interfaces return structs в Go?