【问题标题】:Changing readstream chunksize更改读取流块大小
【发布时间】:2015-02-22 20:20:20
【问题描述】:

我正在尝试创建一个基于套接字的文件传输系统,因此遇到了一些麻烦。我想使用节点的 fs.createReadStream() 读取块中的文件,但我无法从 665536 更改块大小。我找不到任何关于此的内容。

【问题讨论】:

  • 您能帮忙解答一个相关问题吗:在这种情况下(基于套接字的文件共享),理想的块大小是多少?一般来说(除了套接字),理想的块大小是多少?

标签: javascript node.js


【解决方案1】:

根据ReadStream code,您应该可以通过在ReadStream选项中明确设置来增加highWaterMark

var rs = fs.createReadStream('/foo/bar', { highWaterMark: 128 * 1024 });

【讨论】:

  • @mscdex 这是一个非常有帮助的答案,你到底怎么知道它在那里? :-)
  • @KarlBateman 我已经熟悉代码库,但文档(至少目前)暗示了这一点。
  • @mscdex 好吧,我向你致敬,这为我节省了很多时间。谢谢!
  • 'bufferSize' 在我看来是 'highWaterMark' 的更好名称
  • 这里是文档中的参数,如果有人感兴趣nodejs.org/api/…
【解决方案2】:

这就是你将如何使用 highWaterMark 更改块的大小:8 ,你可以将它设置为 8,16,24 都以字节为单位,请确保如果你将块大小设置得太高,那么你是通过使用 readerstream1 的好处。因为 readerstream 或 stream 的好处是它们可以高效地工作,同时消耗更少的内存。

let readerstream1 = fs.createReadStream('shamoon.txt', { highWaterMark: 8 });

【讨论】:

    猜你喜欢
    • 2018-04-14
    • 1970-01-01
    • 1970-01-01
    • 2011-05-04
    • 2017-03-13
    • 1970-01-01
    • 1970-01-01
    • 2015-10-19
    • 1970-01-01
    相关资源
    最近更新 更多