编程文汇

重新认识TCP loopback connection 和 Unix Domain Socket

在自己的猜想中,觉得他们应该差不多,然而事实却是,他们的性能差异蛮大的:
这里是一个测试程序,测试结果显示:

the results on a single CPU 3.3GHz Linux machine :

延迟:

TCP average latency: 6 us

UDS average latency: 2 us

PIPE average latency: 2 us

吞吐量:

TCP average throughput: 0.253702 million msg/s

UDS average throughput: 1.733874 million msg/s

PIPE average throughput: 1.682796 million msg/s

可以看到,Unix Domain Socket 和管道的表现是一致的,也有可能是相同的实现,但是比起tcp来说,他们的开销低多了。

所以单机进程间通信选Unix Domain Socket 更合适。