在一些环境中,比如Java,使用TCP/IP套接字在同一主机上的进程之间传递消息时自然而然地使用“localhost”地址(IPv4中的127.0.0.1或IPv6中的::1)(因为Java倾向于不在其API中公开其他IPC机制)。
显然,这可能比通过管道进行消息传递或使用共享内存进行IPC要慢得多。
另一方面,如果TCP/IP网络堆栈意识到连接的两端都在回环接口上,它可能能够做出相当多的优化,以使效率与使用管道没有太大区别。
但是常见的操作系统(Windows,Linux)是否在其TCP/IP堆栈中实现这样的优化呢?
显然,这可能比通过管道进行消息传递或使用共享内存进行IPC要慢得多。
另一方面,如果TCP/IP网络堆栈意识到连接的两端都在回环接口上,它可能能够做出相当多的优化,以使效率与使用管道没有太大区别。
但是常见的操作系统(Windows,Linux)是否在其TCP/IP堆栈中实现这样的优化呢?