大文件的事件循环?

大文件的事件循环?,第1张

大文件的事件循环?

不,它不会被阻止。node.js将分块读取文件,然后将那些块发送到客户端。在大块之间,它将处理其他请求

通过网络读取文件和发送数据是I /
O绑定的 *** 作。首先,node.js将要求 *** 作系统读取文件的一部分,而在 *** 作系统执行该 *** 作时,node.js将为另一个请求提供服务。当 *** 作系统将数据返回到node.js时,node.js将告诉 *** 作系统将数据发送到客户端。在发送数据时,node.js将处理另一个请求。

自己尝试:

创建一个大文件

dd if=/dev/zero of=file.dat bs=1G count=1

运行此node.js应用

var http = require('http');var fs = require('fs');var i = 1;http.createServer(function (request, response) {    console.log('starting #' + i++);    var stream = fs.createReadStream('file.dat', { bufferSize: 64 * 1024 });    stream.pipe(response);}).listen(8000);console.log('Server running at http://127.0.0.1:8000/');

请求

http://127.0.0.1:8000/
几次并观察node.js处理所有这些。

如果要提供大量大文件,则可能需要尝试使用不同的bufferSize值。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4896764.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-12
下一篇2022-11-12

发表评论

登录后才能评论

评论列表(0条)

    保存