【发布时间】:2015-02-16 20:20:30
【问题描述】:
我有一个用 Node.js 编写的 TCP 服务器。当在其服务器套接字上接收到套接字时,该进程将套接字传递给进程池。它要么分叉或重用以前分叉的进程。然后它使用 ChildProcess.send() 将接收到的套接字传递给另一个进程。这样就可以完全控制子进程的套接字。
我正在考虑采用不同的方法,但我担心潜在的性能权衡。相反,我想通过标准输入或 unix 域套接字或管道将套接字连接到子进程。这种方法在我的特定领域中更可取的原因有很多,但我不会详细说明这个问题。
所以我想知道 node.js 流上 pipe() 方法的性能特征。流的管道是在系统级别处理的,还是 Node.js 必须从一个流中读取每个字节并将其发送到目的地?有一些系统调用(即 splice())提供某种级别的文件描述符零拷贝流。 Node.js 是使用某种类似的机制还是手动的?
【问题讨论】: