Вступить в клуб →
сложнаявопросHTTP-клиенты, серверы и gRPC

Выгрузка каталога в JSON поднимает память пода на полтора гигабайта

products, _ := h.repo.AllProducts(ctx) // 400 тысяч товаров
data, err := json.Marshal(products)
if err != nil { ... }
w.Write(data)

Во время выгрузки память пода подскакивает на 1,5 ГБ, а при двух одновременных выгрузках под убивается по лимиту. Как снизить потребление памяти?

  • Читать курсором и писать в ответ потоком через Encoder
  • Вызвать runtime.GC() после json.Marshal
  • Сжать data перед отправкой
  • Увеличить GOGC до 400

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела