小数据中的 NamedPipe 与 TCP/IP

Posted

技术标签:

【中文标题】小数据中的 NamedPipe 与 TCP/IP【英文标题】:NamedPipe vs TCP/IP in little data 【发布时间】:2010-12-31 19:47:51 【问题描述】:

嗨 如果我们向客户端/服务器来回传递少量数据,tcp/ip 的开销可以忽略不计,并且性能与同一台机器上的 NamedPipe 相同,这是真的吗?

【问题讨论】:

我会说这取决于架构,因此您最好在特定条件下衡量自己。 性能对于您要完成的任务非常主观。 X 时间内的交易数量。 【参考方案1】:

我想说与其说是数据量,不如说是请求数。换句话说,如果您有 100,000 个连接来传递 100 个字节的数据,那么与您有 10 个每个 100K 的连接相比,您将拥有更多的 tcp/ip 开销。

这并不是说通过 tcp/ip 与命名管道传输数据没有相关的开销。有。但通常我会说你要使用哪一个的决定更多地取决于你的系统架构,而不是担心开销。

如果要在物理服务器之间传输数据,则必须使用 tcp/ip;命名管道不是一种选择。如果您在同一服务器上的进程之间传输数据,命名管道显然是更好的执行者。

当您在同一台物理服务器上时,您可能希望使用 tcp/ip 的一个原因是,您将来有可能将进程中断到物理服务器上。

回答您的问题:如果您没有传递大量数据,并且您不经常这样做,那么当两个端点位于同一物理上时,您可能不会注意到 tcp/ip 开销机器。

HTH, 詹姆斯

【讨论】:

以上是关于小数据中的 NamedPipe 与 TCP/IP的主要内容,如果未能解决你的问题,请参考以下文章

ReadFile 使用 NamedPipe 块虽然使用重叠

WCF NamedPipe CommunicationException - “管道已结束。 (109,0x6d)。“

Java面试18|关于进程线程与协程

使用嵌入在 html 页面中的小程序与数据库通信

python之进程与线程

进程间通信——命名管道