Tar*_*ill 5 buffer stream node.js
我有一个代码,其中 NodeJS 服务器读取文件并将其流式传输到响应,它看起来像:
var fStream = fs.createReadStream(filePath, {'bufferSize': 128 * 1024});
fStream.pipe(response);
Run Code Online (Sandbox Code Playgroud)
问题是,Node 每次读取文件正好是 40960 字节。但是,如果我的应用程序一次读取 131072 (128 * 1024) 个字节,它会更有效率(由于不适用于此问题的原因)。
有没有办法强制 Node 一次读取 128 * 1024 个字节?
我是新来的,所以请耐心等待......
我在节点的来源中找到了这个:
var toRead = Math.min(pool.length - pool.used, ~~this.bufferSize);
Run Code Online (Sandbox Code Playgroud)
和:
var kPoolSize = 40 * 1024;
Run Code Online (Sandbox Code Playgroud)
因此,无论您提供什么,缓冲区大小似乎都限制为 40kb。您可以尝试更改代码中的值并重建节点。但这可能不是一个非常易于维护的解决方案......
| 归档时间: |
|
| 查看次数: |
5682 次 |
| 最近记录: |