5

NodeJS サーバーがファイルを読み取り、それを応答にストリーミングするコードがあります。次のようになります。

var fStream = fs.createReadStream(filePath, {'bufferSize': 128 * 1024});
fStream.pipe(response);

問題は、ノードがファイルを一度に正確に 40960 バイト読み取ることです。ただし、一度に 131072 (128 * 1024) バイトを読み取ると、(この質問には当てはまらない理由により) 私のアプリははるかに効率的になります。

ノードに一度に 128 * 1024 バイトを強制的に読み取らせる方法はありますか?

4

2 に答える 2

0

私はここで新しいので、我慢してください....

ノードのソースでこれを見つけました:

var toRead = Math.min(pool.length - pool.used, ~~this.bufferSize);

と:

var kPoolSize = 40 * 1024;

したがって、何を提供しても、バッファサイズは 40kb に制限されているようです。コード内の値を変更して、ノードを再構築してみてください。それはおそらく非常に保守可能なソリューションではありません...

于 2012-08-02T20:53:35.863 に答える