【问题标题】:What is the performance of piping a stream in node.js?在 node.js 中管道流的性能是什么?
【发布时间】:2015-02-16 20:20:30
【问题描述】:

我有一个用 Node.js 编写的 TCP 服务器。当在其服务器套接字上接收到套接字时,该进程将套接字传递给进程池。它要么分叉或重用以前分叉的进程。然后它使用 ChildProcess.send() 将接收到的套接字传递给另一个进程。这样就可以完全控制子进程的套接字。

我正在考虑采用不同的方法,但我担心潜在的性能权衡。相反,我想通过标准输入或 unix 域套接字或管道将套接字连接到子进程。这种方法在我的特定领域中更可取的原因有很多,但我不会详细说明这个问题。

所以我想知道 node.js 流上 pipe() 方法的性能特征。流的管道是在系统级别处理的,还是 Node.js 必须从一个流中读取每个字节并将其发送到目的地?有一些系统调用(即 splice())提供某种级别的文件描述符零拷贝流。 Node.js 是使用某种类似的机制还是手动的?

【问题讨论】:

    标签: node.js sockets stream


    【解决方案1】:

    我建议阅读this blog post,它强调了如何

    当涉及到流时,事情只会和最慢的一样快 工作流中的流

    另外,阅读 this answer 解释如何在节点中对流进行基准测试。

    【讨论】:

      猜你喜欢
      • 2015-02-10
      • 1970-01-01
      • 2017-08-02
      • 1970-01-01
      • 1970-01-01
      • 2010-12-23
      • 2014-09-13
      • 1970-01-01
      • 2016-04-18
      相关资源
      最近更新 更多