Выбор ответа Middle Потоки и буферы обновлено
Buffer.allocUnsafe
Вопрос
Чем опасен Buffer.allocUnsafe(size)?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Память не обнулена: старые данные можно отдать наружу. allocUnsafe не обнуляет память ради скорости.
Варианты ответа
- Он может бросить исключение при нехватке памяти, а alloc нет
- Память не обнулена: старые данные можно отдать наружуправильный ответ
- Он выделяет память в куче V8 и тормозит сборщик мусора
- Он не работает в worker_threads и бросает ошибку
Разбор
allocUnsafe не обнуляет память ради скорости. Там могут остаться куски чужих данных: токены, пароли. Если отправить такой буфер клиенту до заполнения, это утечка. Buffer.alloc заполняет нулями.
- При нехватке памяти падают обе функции.
- Буферы живут вне кучи V8 в обоих случаях.
- В воркерах
allocUnsafeработает.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «Потоки и буферы»
- Пачки из асинхронного итератора
- Разбиение потока на строки по чанкам
- Запись с учётом backpressure
- Итоги платежей из CSV-выгрузки
- Слияние k отсортированных логов
- Топ эндпоинтов по access-логу с нормализацией маршрутов
- Сессии пользователей по потоку событий
- Код-ревью: выгрузка и загрузка больших файлов