
Node.js | Streams
Стрим — это концепция, c помощью которой можно обрабатывать данные небольшими частями, что позволяет задействовать небольшой объем оперативной памяти.
Например нужно записать "тяжелый файл"
Модуль fs.createReadStream может предоставить нам Stream
В статье вы найдете больше информации и где еще применяют потоки.
Стрим — это концепция, c помощью которой можно обрабатывать данные небольшими частями, что позволяет задействовать небольшой объем оперативной памяти.
Например нужно записать "тяжелый файл"
const fs = require('fs');Запуская сервер мы получим нагрузку на оперативную память ~ 400 MB
const file = fs.createWriteStream('./big.file');
for(let i=0; i<= 1e6; i++) {
file.write('Длинный текст\n');
}
file.end();
Модуль fs.createReadStream может предоставить нам Stream
const fs = require('fs');Когда клиент запросит этот файл, мы транслируем его по частям, что означает, что мы вообще не буферизуем его в памяти. Использование памяти снизилось до 25 МБ.
const server = require('http').createServer();
server.on('request', (req, res) => {
const src = fs.createReadStream('./big.file');
src.pipe(res);
});
server.listen(8000);
В статье вы найдете больше информации и где еще применяют потоки.