Выбор ответа Middle Потоки и буферы обновлено

Buffer.allocUnsafe

Вопрос

Чем опасен Buffer.allocUnsafe(size)?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Память не обнулена: старые данные можно отдать наружу. allocUnsafe не обнуляет память ради скорости.

Варианты ответа

  1. Он может бросить исключение при нехватке памяти, а alloc нет
  2. Память не обнулена: старые данные можно отдать наружуправильный ответ
  3. Он выделяет память в куче V8 и тормозит сборщик мусора
  4. Он не работает в worker_threads и бросает ошибку

Разбор

allocUnsafe не обнуляет память ради скорости. Там могут остаться куски чужих данных: токены, пароли. Если отправить такой буфер клиенту до заполнения, это утечка. Buffer.alloc заполняет нулями.

  • При нехватке памяти падают обе функции.
  • Буферы живут вне кучи V8 в обоих случаях.
  • В воркерах allocUnsafe работает.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.