在node.js中pipe道stream的性能如何?

我有一个用Node.js写的TCP服务器。 当在其服务器套接字上收到一个套接字时,该进程将套接字传递给进程池。 它要么分叉,要么重用先前分叉的过程。 然后使用ChildProcess.send()将接收到的套接字传递给其他进程。 这完全控制了对subprocess的套接字。

我正在考虑采取不同的方法,但我担心潜在的性能权衡。 我想反而通过标准input或者unix域套接字或者pipe道将套接字传递给subprocess。 为什么这种方法在我的特定领域更可取,有很多原因,但我不会用这些细节来解决这个问题。

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

我build议阅读这篇博客文章 ,其中强调如何

当涉及到stream时,事情只是在工作stream中最慢的stream

另外,请阅读这个答案,解释如何在节点中对stream进行基准testing。