【问题标题】:Node.js Streams: When will _writev Be Invoked?Node.js 流:何时调用 _writev?
【发布时间】:2021-04-19 00:40:13
【问题描述】:

Node.js 文档对 Writable 流的 _writev 方法进行了以下 cmets。

writable._writev() 方法可以在能够同时处理多个数据块的流实现中作为writable._write() 的补充或替代实现。如果已实现并且如果存在来自先前写入的缓冲数据,则将调用 _writev() 而不是 _write()

强调我的。在什么情况下,Node.js 可写流可以缓冲先前写入的数据?

_writev 方法是否仅称为 after uncorking 一个已写入数据的阻塞流?或者在其他情况下,流可以从以前的写入中缓冲日期?如果您可以指出 Node.js 源代码中的某个位置,它会决定调用 _write_writev

【问题讨论】:

    标签: node.js node-streams


    【解决方案1】:

    _writev() 将在从流中缓冲多条数据并且已定义函数时调用。使用cork()可能会导致更多数据被缓冲,但so could slow processing

    保护_writevis in lib/internal/streams/writable.js的代码。有一个buffer decision,然后是the guard for the write.

    【讨论】:

      猜你喜欢
      • 2017-05-11
      • 2018-10-13
      • 1970-01-01
      • 2016-03-08
      • 1970-01-01
      • 1970-01-01
      • 2021-06-12
      • 2017-07-07
      • 2020-06-28
      相关资源
      最近更新 更多